Google Directions APIで乗り換え案内情報を取ろうとしたが。。。?
鉄分多めの人なので、自分好みの乗り換え案内って作れないかなぁ、と思い立ち。乗り換え案内のAPIってどんなのがあるかを調べてみた。
Google Directions APIを試してみた
Googleのアカウントを持っているので、とりあえず試してみる。
ブラウザからGoogle MAPを使って検索すると、こんな風に路線と時間が返ってくるので、これをAPIで取れればいいなぁ、と思っているわけです。
introductionに沿って、やってみます。
API_KEYを発行の上、実行!
https://maps.googleapis.com/maps/api/directions/json?mode=transit&origin=京成成田駅&destination=芝山千代田駅&key=[YOUR_API_KEY]
結果。おお、ちゃんと返ってきたぞ。
でも、徒歩とJRバスしかない。京成と芝山鉄道はどこいった?
{
"geocoded_waypoints" : [
{
"geocoder_status" : "OK",
"place_id" : "ChIJ-3nRFQ2LImARHxunovQr_4k",
"types" : [
"establishment",
"point_of_interest",
"train_station",
"transit_station"
]
},
{
"geocoder_status" : "OK",
"place_id" : "ChIJqcbzXq3zImARf8AXF6xgcLY",
"types" : [
"establishment",
"point_of_interest",
"train_station",
"transit_station"
]
}
],
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 35.78667,
"lng" : 140.4019
},
"southwest" : {
"lat" : 35.7408,
"lng" : 140.3146692
}
},
"copyrights" : "地図データ ©2019 ZENRIN",
"fare" : {
"currency" : "JPY",
"text" : "¥530",
"value" : 530
},
"legs" : [
{
"arrival_time" : {
"text" : "22:13",
"time_zone" : "Asia/Tokyo",
"value" : 1549199611
},
"departure_time" : {
"text" : "21:26",
"time_zone" : "Asia/Tokyo",
"value" : 1549196818
},
"distance" : {
"text" : "12.7 km",
"value" : 12658
},
"duration" : {
"text" : "47分",
"value" : 2793
},
"end_address" : "日本、〒289-1601 千葉県山武郡芝山町香山新田148−1 芝山千代田駅",
"end_location" : {
"lat" : 35.7542103,
"lng" : 140.3996258
},
"start_address" : "日本、京成成田駅",
"start_location" : {
"lat" : 35.77673559999999,
"lng" : 140.3156404
},
"steps" : [
{
"distance" : {
"text" : "0.2 km",
"value" : 234
},
"duration" : {
"text" : "3分",
"value" : 181
},
"end_location" : {
"lat" : 35.7779198,
"lng" : 140.3146692
},
"html_instructions" : "成田(バス)まで歩く",
"polyline" : {
"points" : "ssjyEwklwYHDKLEDQPEFMMs@lBg@]UOa@[KLEJIPIRCNCR@L@D"
},
"start_location" : {
"lat" : 35.77673559999999,
"lng" : 140.3156404
},
"steps" : [
{
"distance" : {
"text" : "52 m",
"value" : 52
},
"duration" : {
"text" : "1分",
"value" : 36
},
"end_location" : {
"lat" : 35.7769695,
"lng" : 140.3154501
},
"html_instructions" : "改札口に向かう",
"polyline" : {
"points" : "ssjyEwklwYHDKLEDQPEFMM"
},
"start_location" : {
"lat" : 35.77673559999999,
"lng" : 140.3156404
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "57 m",
"value" : 57
},
"duration" : {
"text" : "1分",
"value" : 43
},
"end_location" : {
"lat" : 35.7772286,
"lng" : 140.3149046
},
"html_instructions" : "\u003cb\u003e左折\u003c/b\u003eする",
"maneuver" : "turn-left",
"polyline" : {
"points" : "aujyEqjlwYs@lB"
},
"start_location" : {
"lat" : 35.7769695,
"lng" : 140.3154501
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "63 m",
"value" : 63
},
"duration" : {
"text" : "1分",
"value" : 49
},
"end_location" : {
"lat" : 35.7777102,
"lng" : 140.3152682
},
"html_instructions" : "\u003cb\u003e右折\u003c/b\u003eする",
"maneuver" : "turn-right",
"polyline" : {
"points" : "uvjyEcglwYg@]UOa@["
},
"start_location" : {
"lat" : 35.7772286,
"lng" : 140.3149046
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "62 m",
"value" : 62
},
"duration" : {
"text" : "1分",
"value" : 53
},
"end_location" : {
"lat" : 35.7779198,
"lng" : 140.3146692
},
"html_instructions" : "\u003cb\u003eJR成田駅(交差点)\u003c/b\u003e を\u003cb\u003e左折\u003c/b\u003eする\u003cdiv style=\"font-size:0.9em\"\u003e目的地は前方左側です\u003c/div\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "uyjyEmilwYKLEJIPIRCNCR@L@D"
},
"start_location" : {
"lat" : 35.7777102,
"lng" : 140.3152682
},
"travel_mode" : "WALKING"
}
],
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "11.7 km",
"value" : 11651
},
"duration" : {
"text" : "34分",
"value" : 2040
},
"end_location" : {
"lat" : 35.74877,
"lng" : 140.4014
},
"html_instructions" : "バス 多古台BT行",
"polyline" : {
"points" : "uzjyE{elwYeb@{TbKcLtHsSsh@gh@hO{TrB{h@~JcGr^co@~i@_XbS{TtJgTvQkWv^oZrV_SzLcGdQ{JdFwk@|a@c`BcDwBae@oUsEbB"
},
"start_location" : {
"lat" : 35.77787,
"lng" : 140.3147
},
"transit_details" : {
"arrival_stop" : {
"location" : {
"lat" : 35.74877,
"lng" : 140.4014
},
"name" : "千代田(バス)"
},
"arrival_time" : {
"text" : "22:04",
"time_zone" : "Asia/Tokyo",
"value" : 1549199040
},
"departure_stop" : {
"location" : {
"lat" : 35.77787,
"lng" : 140.3147
},
"name" : "成田(バス)"
},
"departure_time" : {
"text" : "21:30",
"time_zone" : "Asia/Tokyo",
"value" : 1549197000
},
"headsign" : "多古台BT行",
"line" : {
"agencies" : [
{
"name" : "JRバス関東"
}
],
"color" : "#ffffff",
"name" : "多古本線:大原内経由",
"text_color" : "#000000",
"vehicle" : {
"icon" : "//maps.gstatic.com/mapfiles/transit/iw2/6/bus2.png",
"name" : "バス",
"type" : "BUS"
}
},
"num_stops" : 21
},
"travel_mode" : "TRANSIT"
},
{
"distance" : {
"text" : "0.8 km",
"value" : 773
},
"duration" : {
"text" : "10分",
"value" : 571
},
"end_location" : {
"lat" : 35.7542103,
"lng" : 140.3996258
},
"html_instructions" : "日本、〒289-1601 千葉県山武郡芝山町香山新田148−1 芝山千代田駅まで歩く",
"polyline" : {
"points" : "aeeyEuc}wYDl@_BlAq@\\i@^[HYHo@ByAQuEqAaB]q@?g@Dm@Pc@R[VYXUXUf@Yv@iBgAE\\AJ@RVL@RK^"
},
"start_location" : {
"lat" : 35.7488146,
"lng" : 140.40139
},
"steps" : [
{
"distance" : {
"text" : "21 m",
"value" : 21
},
"duration" : {
"text" : "1分",
"value" : 14
},
"end_location" : {
"lat" : 35.7487803,
"lng" : 140.4011583
},
"html_instructions" : "\u003cb\u003e西\u003c/b\u003e方向に\u003cb\u003e県道106号線\u003c/b\u003eを進む",
"polyline" : {
"points" : "aeeyEuc}wYDl@"
},
"start_location" : {
"lat" : 35.7488146,
"lng" : 140.40139
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "0.6 km",
"value" : 616
},
"duration" : {
"text" : "8分",
"value" : 453
},
"end_location" : {
"lat" : 35.753715,
"lng" : 140.3999084
},
"html_instructions" : "\u003cb\u003e千代田交差点\u003c/b\u003e を\u003cb\u003e右折\u003c/b\u003eする",
"maneuver" : "turn-right",
"polyline" : {
"points" : "{deyEgb}wY_BlAq@\\i@^[HYHo@ByAQuEqAaB]q@?g@Dm@Pc@R[VYXUXUf@Yv@"
},
"start_location" : {
"lat" : 35.7487803,
"lng" : 140.4011583
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "68 m",
"value" : 68
},
"duration" : {
"text" : "1分",
"value" : 52
},
"end_location" : {
"lat" : 35.7542519,
"lng" : 140.4002719
},
"html_instructions" : "\u003cb\u003e芝山千代田駅前(交差点)\u003c/b\u003e を\u003cb\u003e右折\u003c/b\u003eする",
"maneuver" : "turn-right",
"polyline" : {
"points" : "wcfyEmz|wYiBgA"
},
"start_location" : {
"lat" : 35.753715,
"lng" : 140.3999084
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "28 m",
"value" : 28
},
"duration" : {
"text" : "1分",
"value" : 23
},
"end_location" : {
"lat" : 35.7542797,
"lng" : 140.399965
},
"html_instructions" : "\u003cb\u003e左折\u003c/b\u003eする",
"maneuver" : "turn-left",
"polyline" : {
"points" : "agfyEu||wYE\\AJ@R"
},
"start_location" : {
"lat" : 35.7542519,
"lng" : 140.4002719
},
"travel_mode" : "WALKING"
},
{
"distance" : {
"text" : "40 m",
"value" : 40
},
"duration" : {
"text" : "1分",
"value" : 29
},
"end_location" : {
"lat" : 35.7542103,
"lng" : 140.3996258
},
"html_instructions" : "\u003cb\u003e左折\u003c/b\u003eする\u003cdiv style=\"font-size:0.9em\"\u003e目的地は前方左側です\u003c/div\u003e",
"maneuver" : "turn-left",
"polyline" : {
"points" : "ggfyEwz|wYVL@RK^"
},
"start_location" : {
"lat" : 35.7542797,
"lng" : 140.399965
},
"travel_mode" : "WALKING"
}
],
"travel_mode" : "WALKING"
}
],
"traffic_speed_entry" : [],
"via_waypoint" : []
}
],
"overview_polyline" : {
"points" : "ssjyEwklwYHDKLWVEFMMs@lBg@]w@k@QXSd@Gb@BRHEeb@{TbKcLtHsSsh@gh@hO{TrB{h@~JcGr^co@~i@_XbS{TtJgTvQkWv^oZrV_SzLcGdQ{JdFwk@|a@c`BcDwBae@oUsEbBG@Dl@_BlAq@\\i@^[HYHo@ByAQuEqAaB]q@?g@Dm@Pc@R[Vo@r@o@~AiBgAE\\?^VL@RK^"
},
"summary" : "",
"warnings" : [
"徒歩ルートの表示は Beta 版です。 注意 – このルートには歩道のない道が含まれている可能性があります。"
],
"waypoint_order" : []
}
],
"status" : "OK"
}
列車を使った検索がしたいんだけど。。。?
チュートリアルを見ると、「mode=transit」「transit_mode=rail」を指定すると、列車を使った検索をしてくれる模様。
ではやってみます。
https://maps.googleapis.com/maps/api/directions/json?mode=transit&transit_mode=rail&origin=京成成田駅&destination=芝山千代田駅&key=[YOUR_API_KEY]
実行!
{
"available_travel_modes" : [ "DRIVING", "WALKING" ],
"geocoded_waypoints" : [
{
"geocoder_status" : "OK",
"place_id" : "ChIJ-3nRFQ2LImARHxunovQr_4k",
"types" : [
"establishment",
"point_of_interest",
"train_station",
"transit_station"
]
},
{
"geocoder_status" : "OK",
"place_id" : "ChIJqcbzXq3zImARf8AXF6xgcLY",
"types" : [
"establishment",
"point_of_interest",
"train_station",
"transit_station"
]
}
],
"routes" : [],
"status" : "ZERO_RESULTS"
}
ん、ZERO_RESULTS。。。
なぜだ?と思って、FAQを見てみる。
以下の記載を発見。
In which countries are transit directions available?
The Google Maps Directions Service, which includes the Directions API and Distance Matrix API, supports all the transit providers in the transit coverage list, except for those in Japan.
Google翻訳に食べさせる。
Google Maps Directionsサービスには、Directions APIとDistance Matrix APIが含まれていますが、日本を除き、トランジットカバレッジリストのすべてのトランジットプロバイダーをサポートしています。
日本の路線情報は返してくれない模様。。。(^^;
Google Directions APIでは要件は満たさないので、他を試してみます。。。
この記事が気に入ったらサポートをしてみませんか?