はじめに
Tips一覧
定期券
探索(運賃)
探索(探索結果)
探索(探索条件)
探索(地点)
探索(路線)
路線図

緯度経度から最寄り出口を経由して経路探索する

緯度経度から最寄り駅を検索し、その駅にある最寄り出口を経由した経路探索をします。

例として、自宅(35.689308746399576,139.69820022583008)から東京駅までの経路を探索する手順をご説明します。

関連URL

手順

1. addGateGroup=trueパラメータを付与して、緯度経度から最寄り駅と出口情報を取得する

GET /v1/xml/geo/station?key=アクセスキーを入力してください&geoPoint=35.689308746399576,139.69820022583008,wgs84,1000&type=train&addGateGroup=true
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="201712_04a">
  <Point>
    <Station code="22741">
      <Name>新宿</Name>
      <Type>train</Type>
      <Yomi>しんじゅく</Yomi>
      <GateGroup>
        <Gate code="G4265">
          <Name>西口1</Name>
          <GeoPoint longi="139.42.9.8" lati="35.41.17.62" longi_d="139.702524" lati_d="35.68823" gcs="tokyo" />
          <Distance>258</Distance>
        </Gate>
          :
      </GateGroup>
      <GateGroup>
        <Gate code="G4167">
          <Name>東南口</Name>
          <GeoPoint longi="139.42.16.22" lati="35.41.10.86" longi_d="139.704506" lati_d="35.686351" gcs="tokyo" />
          <Distance>282</Distance>
        </Gate>
      </GateGroup>
      <GateGroup>
        <Gate code="G16766">
          <Name>A1(都営線)</Name>
          <GeoPoint longi="139.42.9.30" lati="35.41.0.96" longi_d="139.702586" lati_d="35.683601" gcs="tokyo" />
          <Distance>295</Distance>
        </Gate>
      </GateGroup>
      <Prefecture code="13">
        <Name>東京都</Name>
      </Prefecture>
      <GeoPoint longi="139.42.11.0" lati="35.41.15.0" longi_d="139.703056" gcs="tokyo" lati_d="35.6875" />
      <Distance>216</Distance>
    </Station>
  </Point>
  <Point>
    :
  </Point>
</ResultSet>

ResultSet/Point/Station/GateGroup/Gate が最寄り駅にある出口の情報を表します。 ResultSet/Point/Station/GateGroup/Gate/Distance が指定された緯度経度から出口までの直線距離になります。

GateGroup要素ごとに、Distance要素の値が最小になるGate要素を1つずつ選び、そのcode属性を控えておきます。

GateGroup要素の意味については、出口グループをご参照ください。

GateGroup要素を利用せずに、単にDistance要素が最小になるGate要素を選んで経路探索した場合、その出口からは乗車できない路線が存在すると、期待する経路結果にならない可能性があります。



 Attention!

ResultSet/Point/Station/GateGroup/Gate/Distance は指定された緯度経度から出口までの直線距離です。 道路に沿った距離を取得したい場合は、アプリケーション側で地図サービスとの連携するなどが必要となります。

2. 出口コードから地点生成する

1. で控えておいた各グループの出口コードをすべて指定して地点生成します。

※リクエスト例では日本語で記述しておりますが、リクエストパラメータに日本語が含まれる場合には、日本語の部分をUTF8でURLエンコード(パーセントエンコード)してください。

GET /v1/xml/toolbox/course/point?key=アクセスキーを入力してください&name=自宅&station=G4265:G4167:G16766&time=15:15:15&traffic=徒歩:徒歩:徒歩
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="201711_02a">
  <Point>
    <SerializeData>P-%E8%87%AA%E5%AE%85-G4265,G4167,G16766-15,15,15--%E5%BE%92%E6%AD%A9,%E5%BE%92%E6%AD%A9,%E5%BE%92%E6%AD%A9--0----</SerializeData>
  </Point>
</ResultSet>

3. 生成した地点を出発地として経路探索する

2. で生成した地点データと到着地を指定して、経路探索を行います。

リクエスト例では経路探索 /search/course/extreme を使用していますが、経路簡易探索 /search/courseも使用可能です。



 Attention!

出口を考慮した経路探索は、ダイヤによる探索時のみです。平均待ち時間による探索でのご利用はできません。

※リクエスト例では日本語で記述しておりますが、リクエストパラメータに日本語が含まれる場合には、日本語の部分をUTF8でURLエンコード(パーセントエンコード)してください。

GET /v1/xml/search/course/extreme?key=アクセスキーを入力してください&viaList=P-%E8%87%AA%E5%AE%85-G4265,G4167,G16766-15,15,15--%E5%BE%92%E6%AD%A9,%E5%BE%92%E6%AD%A9,%E5%BE%92%E6%AD%A9--0----:東京&searchType=departure
<?xml version="1.0" encoding="UTF-8"?>
<ResultSet apiVersion="1.27.0.0" engineVersion="201712_04a">
  <Course searchType="departure" dataType="onTimetable">
    <Route timeOther="3" timeOnBoard="14" exhaustCO2="226" index="1" exhaustCO2atPassengerCar="1730" distance="103" timeWalk="15" transferCount="0">
      <Point index="1">
        <Name>自宅</Name>
      </Point>
      <Line stopStationCount="0" timeOnBoard="15" exhaustCO2="0" index="1" exhaustCO2atPassengerCar="0" distance="0">
        <Name>徒歩</Name>
        <ArrivalState>
          <Gate>
            <Name>東南口</Name>
            <GeoPoint longi="139.42.16.22" lati="35.41.10.86" longi_d="139.704506" lati_d="35.686351" gcs="tokyo" />
          </Gate>
          <Type>normal</Type>
          <Datetime operation="today">2017-12-19T17:12:00+09:00</Datetime>
        </ArrivalState>
        <Destination />
        <TimeReliability>average</TimeReliability>
        <DepartureState>
          <Type>normal</Type>
          <Datetime operation="today">2017-12-19T16:57:00+09:00</Datetime>
        </DepartureState>
        <Color>000000000</Color>
      </Line>
      <Point index="2">
        <Station code="22741">
          <Name>新宿</Name>
          <Type>train</Type>
          <Yomi>しんじゅく</Yomi>
        </Station>
        <Prefecture code="13">
          <Name>東京都</Name>
        </Prefecture>
        <GeoPoint longi="139.42.11.0" lati="35.41.15.0" longi_d="139.703056" gcs="tokyo" lati_d="35.6875" />
      </Point>
      <Line stopStationCount="3" teiki3Index="1" teiki6Index="1" timeOnBoard="14" track="railway" exhaustCO2="226" fareIndex="1" index="2" exhaustCO2atPassengerCar="1730" distance="103" teiki1Index="1">
        <Name>JR中央線快速・東京行</Name>
        <Type>train</Type>
        <ArrivalState no="2">
          <Type>normal</Type>
          <Datetime operation="today">2017-12-19T17:29:00+09:00</Datetime>
        </ArrivalState>
        <Destination>東京</Destination>
        <TimeReliability>onTimetable</TimeReliability>
        <DepartureState no="8">
          <Type>normal</Type>
          <Datetime operation="today">2017-12-19T17:15:00+09:00</Datetime>
        </DepartureState>
        :
        <Color>250060002</Color>
      </Line>
      <Point index="3">
        <Station code="22828">
          <Name>東京</Name>
          <Type>train</Type>
          <Yomi>とうきょう</Yomi>
        </Station>
        <Prefecture code="13">
          <Name>東京都</Name>
        </Prefecture>
        <GeoPoint longi="139.46.13.59" lati="35.40.41.9" longi_d="139.770444" gcs="tokyo" lati_d="35.678083" />
      </Point>
    </Route>
      :
  </Course>
  :
</ResultSet>

以上で、出口を考慮した上で自宅から新宿駅まで最適の経路が得られました。