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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

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

Q&A

解決済

1回答

3949閲覧

google map apiで公共機関を用いた場合の二地点間の距離と時間を戻り値として取得したい。

tacchan

総合スコア60

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google マップ

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

0グッド

3クリップ

投稿2015/10/19 15:21

google map apiについての質問です。

特にルート案内、つまりDirections Service についての内容です。

私が得たい戻り値は、二地点間の距離と移動に必要な所要時間です。
幸い、この二つはapiを用いて取り出すコードが書けました。

しかし、得られた時間は車での所要時間であり、公共機関を用いた場合の時間ではありません。
私はブラウザでgoogle mapを開いたときに使うことのできるルート案内を再現して、距離と時間を抽出したいのです。

以下に、現在のコードを載せます。(このコードでは距離だけを表示していますが、distanceをdurationにすれば時間も求められます)
この中で、travelModeをTRANSITにすればよい、と考え試してみましたがなぜか動かなくなりました。
(ただし日本の地図で駄目なだけでアメリカでは正常に動くかもしれません。しかし、自分が使いたいのは日本内でのことなので海外で普通に動くかは考慮に入れません)
最終的に距離と時間が戻り値として取れればいいので、地図の表示やルートの細かい説明の部分はいらなくなります。

根本的に使うサービス(Directions Service )が的外れなのか、間違ったコードを書いてしまっているのかもよくわからなくなってしまいました。
日本における公共機関を用いての距離と時間が得ることができれば、何でも構いません。
よろしくお願いいたします。

javascript

1<!DOCTYPE html> 2 <html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Google Maps API ver 3 Sample/グーグルマップAPIサンプル/Google Maps API样品</title> 6 <link rel="stylesheet" href="css/main.css" type="text/css" media="all"> 7 <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 8 9 <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 10<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 11<script type="text/javascript"> 12 var center = new google.maps.LatLng(35.67849, 139.39178); 13 var zoom = 10; 14 var mapTypeId = google.maps.MapTypeId.ROADMAP 15</script> 16<script type="text/javascript"> 17 18var rendererOptions = 19{ 20draggable: true, 21preserveViewport:false 22}; 23var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);; 24 25var directionsService = new google.maps.DirectionsService(); 26var map; 27var tokyo= new google.maps.LatLng(35.68407, 139.63623); 28 29function initialize() 30{ 31 var myOptions = 32 { 33 center: center, 34 zoom: zoom, 35 mapTypeId: mapTypeId 36 }; 37 map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 38 directionsDisplay.setMap(map); 39 directionsDisplay.setPanel(document.getElementById("directionsPanel")); 40 google.maps.event.addListener(directionsDisplay, 'directions_changed', function() 41 { 42 computeTotalDistance(directionsDisplay.directions); //◆総距離合計 43 }); 44 45 calcRoute(); 46} 47 48function calcRoute() 49{ 50 var request = 51 { 52 origin: "東京", 53 destination: "大阪", 54 waypoints:[ 55 { 56 location: "静岡", 57 stopover:true 58 }, 59 { 60 location: "名古屋", 61 stopover:true 62 } 63 ], 64 travelMode: google.maps.DirectionsTravelMode.DRIVING,//ドライビングモード指定(車) 65 provideRouteAlternatives: false, //オルタネイティブルートの表示 66 unitSystem: google.maps.DirectionsUnitSystem.METRIC,//単位km表示 67 optimizeWaypoints: true,//最適化された最短距離にする。 68 avoidHighways: false,//trueで高速道路を使用しない 69 avoidTolls: false //trueで有料道路を使用しない 70 }; 71 directionsService.route(request, function(response, status) 72 { 73 if (status == google.maps.DirectionsStatus.OK) 74 { 75 76 77 document.getElementById('distance').innerHTML+= +response.routes[0].legs[0].distance.value /1000 + " km"; 78 document.getElementById('distance1').innerHTML+= response.routes[0].legs[1].distance.value /1000 + " km"; 79 document.getElementById('distance2').innerHTML+= response.routes[0].legs[2].distance.value /1000 + " km"; 80 81 82 83 directionsDisplay.setDirections(response); 84 } 85 }); 86} 87 88//◆総距離合計 89function computeTotalDistance(result) 90{ 91var total = 0; 92var myroute = result.routes[0]; 93 for (i = 0; i < myroute.legs.length; i++) 94 { 95 total += myroute.legs[i].distance.value; 96 } 97 total = total / 1000. 98 document.getElementById("total").innerHTML = total + " km"; 99} 100 101 102window.onload=initialize; 103</script> 104 105 </head> 106 <body> 107 合計距離: <span id="total"></span> 区間AB<span id="distance"></span> 区間BC<span id="distance1"></span> 区間CD<span id="distance2"></span> 108<div style="position:relative; border: 1px; width : 950px; height : 594px;"> 109<!--ここからGoogle Maps v3用--> 110 111<div id="map_canvas" style="border: 1px solid black; position:absolute; width : 671px; height : 553px;top : 12px;left : -5px;"></div> 112<div id="directionsPanel" style="position:absolute; left : 682px; width : 263px; height : 575px; overflow: auto;top : 0px;"></div> 113<!--ここまでGoogle Maps v3用--></div> 114 115 </body> 116 </html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

The Google Maps Directions Service supports all of the transit providers listed in the Transit Coverage List, except for those in Japan.

https://developers.google.com/maps/faq#transit_directions_countries

とのこと。現状では難しいのでは。

投稿2015/10/20 02:06

Lhankor_Mhy

総合スコア35869

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問