{
  "city": "kuala-lumpur",
  "sources": [
    {
      "id": "kl-midvalley-osm",
      "url": "https://www.openstreetmap.org/copyright",
      "title": "OpenStreetMap KTM directional relations 8390976 and 9985624",
      "license": "ODbL-1.0",
      "checked": "2026-10-17"
    },
    {
      "id": "kl-midvalley-service",
      "url": "https://www.ktmb.com.my/traintime.html",
      "title": "KTMB currently linked Batu Caves schedules: weekday 27 April / weekend 1 May 2026",
      "license": "Factual reference",
      "checked": "2026-10-17"
    }
  ],
  "stations": [
    {
      "id": "KLKMS",
      "code": "KLKMS",
      "hideCode": true,
      "names": {
        "en": "KL Sentral KTM toward Mid Valley",
        "ms": "KL Sentral KTM arah Mid Valley",
        "zh": "KL Sentral KTM 往 Mid Valley 軌道停車點"
      },
      "coordinates": [
        101.6864333,
        3.1342529
      ],
      "sourceNodeId": 9889293562,
      "coordinateRole": "directional_track_stop_not_entrance",
      "sourceId": "kl-midvalley-osm"
    },
    {
      "id": "KLKMVS",
      "code": "KLKMVS",
      "hideCode": true,
      "names": {
        "en": "Mid Valley KTM from KL Sentral",
        "ms": "Mid Valley KTM dari KL Sentral",
        "zh": "Mid Valley KTM 自 KL Sentral 抵達軌道停車點"
      },
      "coordinates": [
        101.6789717,
        3.1186744
      ],
      "sourceNodeId": 9901271016,
      "coordinateRole": "directional_track_stop_not_entrance",
      "sourceId": "kl-midvalley-osm"
    },
    {
      "id": "KLKMVN",
      "code": "KLKMVN",
      "hideCode": true,
      "names": {
        "en": "Mid Valley KTM toward KL Sentral",
        "ms": "Mid Valley KTM arah KL Sentral",
        "zh": "Mid Valley KTM 往 KL Sentral 軌道停車點"
      },
      "coordinates": [
        101.6789512,
        3.1186708
      ],
      "sourceNodeId": 1669838930,
      "coordinateRole": "directional_track_stop_not_entrance",
      "sourceId": "kl-midvalley-osm"
    }
  ],
  "lines": [
    {
      "id": "KL-KTM-MV",
      "mode": "rail",
      "names": {
        "en": "KTM Komuter: KL Sentral–Mid Valley",
        "ms": "KTM Komuter: KL Sentral–Mid Valley",
        "zh": "KTM 通勤鐵路：KL Sentral 至 Mid Valley"
      },
      "color": "#139593",
      "sourceId": "kl-midvalley-service",
      "patterns": [
        {
          "id": "KL-KTM-MV-9985624",
          "stationIds": [
            "KLKMS",
            "KLKMVS"
          ],
          "bidirectional": false
        },
        {
          "id": "KL-KTM-MV-8390976",
          "stationIds": [
            "KLKMVN",
            "KTMBC1"
          ],
          "bidirectional": false
        }
      ]
    }
  ],
  "segments": [
    {
      "lineId": "KL-KTM-MV",
      "fromStationId": "KLKMS",
      "toStationId": "KLKMVS",
      "coordinates": [
        [
          101.6864333,
          3.1342529
        ],
        [
          101.6858141,
          3.1339251
        ],
        [
          101.6853148,
          3.1337021
        ],
        [
          101.6851379,
          3.1336465
        ],
        [
          101.6849168,
          3.13358
        ],
        [
          101.6847428,
          3.1335207
        ],
        [
          101.6845815,
          3.1334232
        ],
        [
          101.6844337,
          3.1333066
        ],
        [
          101.6842766,
          3.1331594
        ],
        [
          101.6840202,
          3.1329211
        ],
        [
          101.6836782,
          3.1325754
        ],
        [
          101.6830926,
          3.1319876
        ],
        [
          101.682952,
          3.1318385
        ],
        [
          101.6827694,
          3.1316074
        ],
        [
          101.6826028,
          3.1314052
        ],
        [
          101.6823665,
          3.1311183
        ],
        [
          101.6808727,
          3.1292372
        ],
        [
          101.6798138,
          3.1278969
        ],
        [
          101.6793341,
          3.1272506
        ],
        [
          101.6791789,
          3.1270394
        ],
        [
          101.6789914,
          3.1267618
        ],
        [
          101.6788202,
          3.1264588
        ],
        [
          101.6786908,
          3.1261837
        ],
        [
          101.6785339,
          3.1258061
        ],
        [
          101.6784152,
          3.1254766
        ],
        [
          101.678318,
          3.1251769
        ],
        [
          101.6782572,
          3.1249549
        ],
        [
          101.6782085,
          3.1247633
        ],
        [
          101.6781754,
          3.1245961
        ],
        [
          101.6781369,
          3.1243534
        ],
        [
          101.6781076,
          3.12412
        ],
        [
          101.6780921,
          3.123952
        ],
        [
          101.6780815,
          3.1237353
        ],
        [
          101.6780804,
          3.1234056
        ],
        [
          101.678085,
          3.1231279
        ],
        [
          101.6781198,
          3.1228561
        ],
        [
          101.6781639,
          3.1225992
        ],
        [
          101.6782139,
          3.1223357
        ],
        [
          101.6782878,
          3.1219566
        ],
        [
          101.6783154,
          3.1218314
        ],
        [
          101.6784083,
          3.121439
        ],
        [
          101.6784917,
          3.1210333
        ],
        [
          101.678774,
          3.1196601
        ],
        [
          101.6789717,
          3.1186744
        ]
      ],
      "sourceNodeIds": [
        9889293562,
        9577041849,
        9964356044,
        9964356045,
        9964356047,
        9964356048,
        9964356025,
        9577041853,
        9964356031,
        9577041854,
        9964356030,
        9576049735,
        9964356028,
        9964356022,
        9964356055,
        9576049736,
        9576049737,
        9576049738,
        9576049740,
        13243343491,
        9577041841,
        8209708013,
        13243384502,
        13243384501,
        8209708012,
        8209708010,
        8209708009,
        8209708007,
        8209708006,
        8209708004,
        8209708003,
        8209708002,
        8209708001,
        8209708000,
        8209707999,
        8209707998,
        8209707997,
        8209707996,
        8209707995,
        8209707994,
        8209707993,
        10241923992,
        10241923993,
        9901271016
      ],
      "sourceEdgeWayIds": [
        1040122905,
        1040122905,
        1040122905,
        1040122905,
        1040122905,
        1040122905,
        1040122905,
        1040122905,
        1040122905,
        1087546675,
        1087546675,
        1100750091,
        1100750091,
        1100750091,
        1102307423,
        1102307423,
        1102307423,
        1102307423,
        1040122901,
        1040122901,
        1102307422,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787830,
        882787828,
        882787829,
        882787829,
        1120063778
      ],
      "sourceRelationId": 9985624,
      "sourceId": "kl-midvalley-osm"
    },
    {
      "lineId": "KL-KTM-MV",
      "fromStationId": "KLKMVN",
      "toStationId": "KTMBC1",
      "coordinates": [
        [
          101.6789512,
          3.1186708
        ],
        [
          101.678772,
          3.1195407
        ],
        [
          101.6786491,
          3.120124
        ],
        [
          101.6786202,
          3.1202609
        ],
        [
          101.6785971,
          3.1203705
        ],
        [
          101.678381,
          3.1214348
        ],
        [
          101.6782933,
          3.121824
        ],
        [
          101.6782591,
          3.1219587
        ],
        [
          101.6781825,
          3.1223231
        ],
        [
          101.6781257,
          3.1226007
        ],
        [
          101.6780913,
          3.1228467
        ],
        [
          101.6780551,
          3.1231439
        ],
        [
          101.6780425,
          3.12341
        ],
        [
          101.6780443,
          3.1237358
        ],
        [
          101.6780571,
          3.123962
        ],
        [
          101.6780671,
          3.1241161
        ],
        [
          101.6780966,
          3.124362
        ],
        [
          101.6781364,
          3.1246002
        ],
        [
          101.6781744,
          3.1247763
        ],
        [
          101.6782179,
          3.1249592
        ],
        [
          101.6782753,
          3.1251859
        ],
        [
          101.6784444,
          3.1256628
        ],
        [
          101.6785354,
          3.1259098
        ],
        [
          101.6786747,
          3.1261971
        ],
        [
          101.6788202,
          3.1264588
        ],
        [
          101.6789914,
          3.1267618
        ],
        [
          101.6791653,
          3.127057
        ],
        [
          101.6793231,
          3.1272906
        ],
        [
          101.6797956,
          3.1279269
        ],
        [
          101.6816291,
          3.1302533
        ],
        [
          101.6821916,
          3.1309671
        ],
        [
          101.6822528,
          3.1310447
        ],
        [
          101.6823246,
          3.1311358
        ],
        [
          101.6826028,
          3.1314052
        ],
        [
          101.6827694,
          3.1316074
        ],
        [
          101.682952,
          3.1318385
        ],
        [
          101.6830926,
          3.1319876
        ],
        [
          101.6836782,
          3.1325754
        ],
        [
          101.6840202,
          3.1329211
        ],
        [
          101.684412,
          3.1333237
        ],
        [
          101.6845232,
          3.1334235
        ],
        [
          101.6846431,
          3.1335246
        ],
        [
          101.6849199,
          3.133722
        ],
        [
          101.6850438,
          3.1337694
        ],
        [
          101.685502,
          3.1339447
        ],
        [
          101.6857385,
          3.1340459
        ],
        [
          101.6863621,
          3.1343854
        ]
      ],
      "sourceNodeIds": [
        1669838930,
        11297471253,
        11830927571,
        10241923994,
        669805682,
        1515037458,
        1515037463,
        669805673,
        13243384506,
        669805685,
        13243384507,
        13243384508,
        669805686,
        13243384509,
        669805687,
        13243384505,
        669805688,
        2674908683,
        13243384504,
        2674908719,
        669805689,
        669805690,
        9577041861,
        13243343495,
        8209708013,
        9577041841,
        11806405670,
        8209708015,
        8209708016,
        9899576668,
        9964356060,
        9964356057,
        9577041840,
        9964356055,
        9964356022,
        9964356028,
        9576049735,
        9964356030,
        9577041854,
        243307559,
        9576049734,
        9964356024,
        9964356043,
        9964323160,
        9964356046,
        9576049733,
        9889293563
      ],
      "sourceEdgeWayIds": [
        52808426,
        52808426,
        52808426,
        1120063779,
        52808433,
        138206885,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        138206886,
        1078760449,
        1040122907,
        1040122907,
        1102307422,
        1078760450,
        1078760450,
        1078760450,
        1078760450,
        1100750085,
        1100750089,
        1100750089,
        1087546680,
        1100750091,
        1100750091,
        1100750091,
        1087546675,
        1087546675,
        1087546677,
        1040003206,
        1040003206,
        1040003206,
        1040003206,
        1040003206,
        1040003206,
        1040003206
      ],
      "sourceRelationId": 8390976,
      "sourceId": "kl-midvalley-osm"
    }
  ],
  "links": [
    {
      "from": "KTMBC1",
      "to": "KLKMS",
      "coordinates": null,
      "bidirectional": true,
      "geometryStatus": "station-interior-unmapped",
      "sourceId": "kl-midvalley-osm",
      "notes": {
        "en": "Only the KL Sentral–Mid Valley KTM section is added. Check current KTMB departures before travelling; this is not a timetable or a promise of continuous service. Pins mark directional track stops, not entrances. Station interiors, platform changes and mall access are not mapped; waiting, walking and total times are unverified. Services farther south have different directional operating limits and are not included.",
        "ms": "Hanya bahagian KTM KL Sentral–Mid Valley ditambah. Semak pelepasan semasa KTMB sebelum perjalanan; ini bukan jadual waktu atau jaminan perkhidmatan berterusan. Pin menandakan tempat berhenti mengikut arah di landasan, bukan pintu masuk. Laluan dalam stesen, pertukaran platform dan akses pusat beli-belah belum dipetakan; masa menunggu, berjalan dan jumlah perjalanan belum disahkan. Perkhidmatan lebih ke selatan mempunyai had operasi mengikut arah yang berbeza dan tidak disertakan.",
        "zh": "本批僅加入 KL Sentral 至 Mid Valley 的 KTM 區段。出發前請確認 KTMB 當前班次；此規劃不是時刻表，亦不保證連續營運。圖釘為各方向軌道停車點，不是入口。站內、換月台及商場接續尚未繪製；候車、步行與總時間未核實。更南側服務有不同方向時段限制，本批不收錄。"
      }
    },
    {
      "from": "KLKMVS",
      "to": "KLKMVN",
      "coordinates": null,
      "bidirectional": true,
      "geometryStatus": "station-interior-unmapped",
      "sourceId": "kl-midvalley-osm",
      "notes": {
        "en": "Only the KL Sentral–Mid Valley KTM section is added. Check current KTMB departures before travelling; this is not a timetable or a promise of continuous service. Pins mark directional track stops, not entrances. Station interiors, platform changes and mall access are not mapped; waiting, walking and total times are unverified. Services farther south have different directional operating limits and are not included.",
        "ms": "Hanya bahagian KTM KL Sentral–Mid Valley ditambah. Semak pelepasan semasa KTMB sebelum perjalanan; ini bukan jadual waktu atau jaminan perkhidmatan berterusan. Pin menandakan tempat berhenti mengikut arah di landasan, bukan pintu masuk. Laluan dalam stesen, pertukaran platform dan akses pusat beli-belah belum dipetakan; masa menunggu, berjalan dan jumlah perjalanan belum disahkan. Perkhidmatan lebih ke selatan mempunyai had operasi mengikut arah yang berbeza dan tidak disertakan.",
        "zh": "本批僅加入 KL Sentral 至 Mid Valley 的 KTM 區段。出發前請確認 KTMB 當前班次；此規劃不是時刻表，亦不保證連續營運。圖釘為各方向軌道停車點，不是入口。站內、換月台及商場接續尚未繪製；候車、步行與總時間未核實。更南側服務有不同方向時段限制，本批不收錄。"
      }
    }
  ],
  "places": [],
  "newPlaces": [],
  "notices": [
    {
      "routeId": "KL-KTM-MV",
      "text": {
        "en": "Only the KL Sentral–Mid Valley KTM section is added. Check current KTMB departures before travelling; this is not a timetable or a promise of continuous service. Pins mark directional track stops, not entrances. Station interiors, platform changes and mall access are not mapped; waiting, walking and total times are unverified. Services farther south have different directional operating limits and are not included.",
        "ms": "Hanya bahagian KTM KL Sentral–Mid Valley ditambah. Semak pelepasan semasa KTMB sebelum perjalanan; ini bukan jadual waktu atau jaminan perkhidmatan berterusan. Pin menandakan tempat berhenti mengikut arah di landasan, bukan pintu masuk. Laluan dalam stesen, pertukaran platform dan akses pusat beli-belah belum dipetakan; masa menunggu, berjalan dan jumlah perjalanan belum disahkan. Perkhidmatan lebih ke selatan mempunyai had operasi mengikut arah yang berbeza dan tidak disertakan.",
        "zh": "本批僅加入 KL Sentral 至 Mid Valley 的 KTM 區段。出發前請確認 KTMB 當前班次；此規劃不是時刻表，亦不保證連續營運。圖釘為各方向軌道停車點，不是入口。站內、換月台及商場接續尚未繪製；候車、步行與總時間未核實。更南側服務有不同方向時段限制，本批不收錄。"
      }
    }
  ]
}
