{
  "_说明": "地图数据管线唯一配置（技术侧维护）。生成器 map-data.mjs 只读本文件，不在代码里写死查询或 id；本文件内容进入 meta.sourceManifest，因此改任何值都要重新运行 node scripts/map-data.mjs all，所有线路指纹随之刷新。bbox 顺序：S, W, N, E。",
  "bbox": {"s": -17.6, "w": 145.2, "n": -15.95, "e": 146.35},
  "latRef": -16.8,
  "viewBoxWidth": 1000,
  "overpass": {
    "endpoints": ["https://overpass-api.de/api/interpreter", "https://lz4.overpass-api.de/api/interpreter"],
    "userAgent": "kangomate-map-prep/0.1 (bookings@kangomate.com)",
    "minIntervalMs": 2000,
    "retries": 5,
    "backoffStartMs": 30000,
    "timeoutS": 180
  },
  "base": {
    "coastTolerance": 0.6,
    "coastToleranceFallback": 0.8,
    "roadTolerance": 0.6,
    "waterTolerance": 0.6,
    "minIslandKm2": 0.3,
    "minWaterKm2": 0.5,
    "requiredWater": ["Tinaroo", "Barrine", "Eacham"],
    "queries": {
      "coast": "[out:json][timeout:{{timeout}}];way[\"natural\"=\"coastline\"]({{bbox}});out geom;",
      "roadsTrunk": "[out:json][timeout:{{timeout}}];way[\"highway\"~\"^(motorway|trunk|primary|motorway_link|trunk_link|primary_link)$\"]({{bbox}});out geom;",
      "roadsMinor": "[out:json][timeout:{{timeout}}];way[\"highway\"~\"^(secondary|tertiary|secondary_link|tertiary_link)$\"]({{bbox}});out geom;",
      "water": "[out:json][timeout:{{timeout}}];(way[\"natural\"=\"water\"]({{bbox}});relation[\"natural\"=\"water\"]({{bbox}}););out geom;",
      "reef": "[out:json][timeout:{{timeout}}];way[\"natural\"=\"reef\"][\"name\"~\"Green Island|Arlington|Moore|Hastings|Michaelmas|Norman\"]({{bbox}});out geom;"
    },
    "trunkClasses": ["motorway", "trunk", "primary", "motorway_link", "trunk_link", "primary_link"],
    "minorClasses": ["secondary", "tertiary", "secondary_link", "tertiary_link"]
  },
  "routes": {
    "simplifyTolerance": 0.8,
    "snapRadiusM": 800,
    "terminalToleranceM": 50,
    "shorelineToleranceM": 200,
    "approachLegM": 150,
    "localRoadsAroundM": 3000,
    "maxRouteBytes": 6144,
    "queries": {
      "roadsTrunk": "[out:json][timeout:{{timeout}}];way[\"highway\"~\"^(motorway|trunk|primary|motorway_link|trunk_link|primary_link)$\"]({{bbox}});out geom;",
      "roadsMinor": "[out:json][timeout:{{timeout}}];way[\"highway\"~\"^(secondary|tertiary|secondary_link|tertiary_link)$\"]({{bbox}});out geom;",
      "roadsUnclassified": "[out:json][timeout:{{timeout}}];way[\"highway\"=\"unclassified\"]({{bbox}});out geom;",
      "roadsLocal": "[out:json][timeout:{{timeout}}];way[\"highway\"~\"^(residential|service|living_street)$\"]({{localBbox}})->.a;way.a(around:{{around}},{{lat}},{{lng}});out geom;",
      "ferry": "[out:json][timeout:{{timeout}}];way[\"route\"=\"ferry\"]({{bbox}});out geom;",
      "cableway": "[out:json][timeout:{{timeout}}];way[\"aerialway\"~\"^(gondola|cable_car)$\"]({{bbox}});out geom;",
      "rail": "[out:json][timeout:{{timeout}}];way[\"railway\"=\"rail\"]({{bbox}});out geom;relation[\"route\"~\"^(railway|train)$\"]({{bbox}});out body;"
    },
    "access": {
      "_说明": "本轮用车 = 普通汽车。按特异性取最具体存在的键；no/private 排除；allow 列表放行；其它值（含 *:conditional）进人工核对清单，默认不放行。",
      "keysBySpecificity": ["motorcar", "motor_vehicle", "vehicle", "access"],
      "deny": ["no", "private"],
      "allow": ["yes", "permissive", "designated", "destination", "customers"],
      "excludeHighway": ["construction", "proposed"]
    },
    "networks": {
      "_说明": "A1 已按 Overpass 核对并填入实际选中的 OSM way / relation id 与端点坐标（核对日期 2026-09-22，OSM 快照见 map-meta.json）；生成器只按这里的 id 取图，最近边只作候选。改这里要重新跑 all。",
      "ferry": {
        "_说明": "只有载车渡轮才进公路图：Cairns–Green Island / Fitzroy Island 两条 motor_vehicle=no 的客运航线被排除。",
        "requireTags": {
          "motor_vehicle": ["yes"],
          "motorcar": ["yes"]
        },
        "wayIds": [26160404],
        "terminals": [
          {
            "id": "daintree-ferry-south",
            "osm": "node/1988221211",
            "lat": -16.26088,
            "lng": 145.39764,
            "zh": "丹翠河渡口（南岸）",
            "en": "Daintree River Ferry (south bank)"
          },
          {
            "id": "daintree-ferry-north",
            "osm": "node/1988221222",
            "lat": -16.25865,
            "lng": 145.3988,
            "zh": "丹翠河渡口（北岸）",
            "en": "Daintree River Ferry (north bank)"
          }
        ]
      },
      "cableway": {
        "_说明": "Skyrail Rainforest Cableway 在 OSM 里是一条 way（史密斯菲尔德 → 库兰达，7.5 km）；范围框内另一条 cable_car 是 Broadcast Australia 的私有设备，已排除。",
        "nameMatch": "Skyrail",
        "wayIds": [37838270],
        "relationIds": [],
        "stations": [
          {
            "id": "skyrail-smithfield",
            "osm": "node/282149986",
            "lat": -16.84766,
            "lng": 145.69505,
            "zh": "Skyrail 史密斯菲尔德站",
            "en": "Skyrail Smithfield Terminal"
          },
          {"id": "skyrail-red-peak", "osm": "node/443728056", "lat": -16.84927, "lng": 145.66954, "zh": "Skyrail 红峰站", "en": "Red Peak Station"},
          {"id": "skyrail-barron-falls", "osm": "node/443727067", "lat": -16.83354, "lng": 145.6455, "zh": "Skyrail 巴伦瀑布站", "en": "Barron Falls Station"},
          {"id": "skyrail-kuranda", "osm": "way/37838875", "lat": -16.81917, "lng": 145.63906, "zh": "Skyrail 库兰达站", "en": "Skyrail Kuranda Terminal"}
        ]
      },
      "rail": {
        "_说明": "库兰达观景火车 = relation 2632233「Kuranda Scenic Railway」（route=train、service=tourism、Queensland Rail），129 条无角色成员 way 即实际轨道。",
        "nameMatch": "Kuranda|Tablelands",
        "wayIds": [],
        "relationIds": [2632233],
        "stations": [
          {"id": "rail-cairns", "osm": "node/127570103", "lat": -16.92567, "lng": 145.77126, "zh": "凯恩斯火车站", "en": "Cairns station"},
          {"id": "rail-freshwater", "osm": "node/2060753756", "lat": -16.881, "lng": 145.70977, "zh": "淡水站", "en": "Freshwater station"},
          {"id": "rail-barron-falls", "osm": "node/1383549526", "lat": -16.83644, "lng": 145.64298, "zh": "巴伦瀑布站", "en": "Barron Falls station"},
          {"id": "rail-kuranda", "osm": "node/358464817", "lat": -16.81848, "lng": 145.63909, "zh": "库兰达火车站", "en": "Kuranda station"}
        ]
      }
    }
  }
}
