質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

4645閲覧

Google Maps Distance Matrix APIでmodeにtransitを指定すると徒歩で取得される

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/05/03 10:35

編集2017/05/06 07:25

初めまして。

Google Maps Distance Matrix APIを利用しているのですが、
パラメータのmodeにtaransitを指定すると、公共交通機関ではなく徒歩での時間が取得されています。

以下がリクエストです。

PHP

1https://maps.googleapis.com/maps/api/distancematrix/json?origins="愛知県名駅"&destinations="愛知県栄"&language=ja&mode=transit&key=APIキー

結果は以下の通りです。

array(4) {

["destination_addresses"]=>
array(1) {
[0]=>
string(50) "日本, 〒460-0008 愛知県名古屋市中区栄"
}
["origin_addresses"]=>
array(1) {
[0]=>
string(56) "日本, 〒450-0002 愛知県名古屋市中村区名駅"
}
["rows"]=>
array(1) {
[0]=>
array(1) {
["elements"]=>
array(1) {
[0]=>
array(3) {
["distance"]=>
array(2) {
["text"]=>
string(6) "1.7 km"
["value"]=>
int(1708)
}
["duration"]=>
array(2) {
["text"]=>
string(5) "20分"
["value"]=>
int(1227)
}
["status"]=>
string(2) "OK"
}
}
}
}
["status"]=>
string(2) "OK"
}

なにか指定のし忘れや条件などあるのでしょうか?
よろしくお願いします。

【追記】
リクエストを以下のように修正しました。

PHP

1https://maps.googleapis.com/maps/api/distancematrix/json?origins="愛知県名駅"&destinations="愛知県栄"&language=ja&mode=transit&transit_routing_preference=less_walking&key=APIキー

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

APIを実行した時間が、深夜などの交通公共機関が止まっている時間だったからでは無いでしょうか?

mode=transit は、公共交通機関を使用しての検索指定ですが、「公共交通機関」の中には「徒歩」も移動手段に含まれます。

で、出発時間や到着時間などの指定をしていないので、APIを実行した時点を出発時間として検索され、深夜だと徒歩が最短時間になるので、第一候補のルートになったのでしょう。

試しにブラウザで普通にGoogleMAPで出発時間をAM1:00を指定したら、徒歩20分コースが第一ルートとして表示されました。

なので、特定の出発・到着時刻を指定しないで、かつ長距離の徒歩のみルートが表示されるのが嫌なら、transit_routing_preference パラメータにless_walking を指定するのが良いと思われます。

Distance Matrix API

・transit_routing_preference - 交通機関のリクエストの優先度を指定します。このパラメータを使うと、API がデフォルトで選択した最適なルートを受け取る代わりに、返されるオプションにバイアスをかけることができます。このパラメータは、mode が transit のリクエストにのみ指定できます。パラメータは次の引数をサポートします。

・less_walking は、歩行距離に制限を付けてルートを計算するよう指定します。
・fewer_transfers は、乗り換え回数に制限を付けてルートを計算するよう指定します。

GoogleMAPでもルートオプションで「徒歩が少ない」を指定すれば、出発時間をAM1:00を指定していても、徒歩20分ルートは表示されなくなりした。

投稿2017/05/05 07:37

KenjiToriumi

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/05/06 07:28

回答ありがとうございます。 質問欄に修正したリクエストを追記しているのですが、16時20分時点で上記を実行したところ、やはり徒歩での計算になってしまいます。 なにか指定の仕方が間違っているでしょうか? (GoogleMapでは徒歩ではなく電車の時間が出ています。)
退会済みユーザー

退会済みユーザー

2017/05/18 13:27

transitをシングルクォートで囲うことで解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問