MULTISOUP

MULTISOUP

MULTISOUP

Staff Blog

Introduction example

2017.01.19

Distance Matrix API の使い方を考える

DistanceMatrixAPI

みなさん、こんにちは。

 

今回は、Distance Matrix API の使い方について説明いたします。

Distance Matrix API  は、複数地点間をまとめてルート検索し、ルート距離と所要時間を取得することができるAPIです。

例えば、出発地点として「A、B」、到着地点として「C、D」があった場合、下記4通りの距離と所要時間を取得することができます。

 

  1. A→C
  2. A→D
  3. B→C
  4. B→D

 

DistanceMatrix のようなAPIがない場合は、4回ルート検索しないといけなくなるので少し面倒ですね。

 

では、具体的にどのような場面で利用すれば良いのでしょうか? 私なりに考えた結果、下記のような場面で活用できるのではと思います。

・現在地に近いコンビニを近い順に並べて表示する
・○○駅に近い不動産屋を近い順に並べて表示する

 

今回はサンプルを下記のストーリーで作成してみました。

 

1. Places API を使用して、マルティスープ(神保町)から半径 1km のカフェを検索

2. JavaScript API の DistanceMatrixService を使用して、上記で取得したお店までの距離と時間を取得

3. 近い順に並べてお店をリスト表示

4. リストのお店をクリックするとマルティスープまでのルートを表示

 

以下がサンプルです。

地図上には、Places API で取得したお店を表示しています。

「検索」ボタンをクリックすると、出発地点のマルティスープから到着地点のお店までの距離と時間を取得し、時間順にソートしす。

※ 画面の構成上、結果は Full Screen 時のみ表示されますので、ご注意ください。

Full Screen

 

簡単に DistanceMatxixService の使用方法を説明します。

パラメータの「origns」に出発地点の配列、「destinations」に到着地点の配列を指定します。

// DistanceMatrix サービスを生成
var distanceMatrixService = new google.maps.DistanceMatrixService();

// 出発点
var origns = [
	new google.maps.LatLng(35.6, 139.7),
	new google.maps.LatLng(35.3, 139.5)
// 到着点
var destinations = [
	new google.maps.LagLng(35.8, 140.5),
	new google.maps.LatLng(36.5, 139.3)
];

// DistanceMatrix の実行
distanceMatrixService.getDistanceMatrix({
	origins: origns, // 出発地点
	destinations: destinations, // 到着地点
	travelMode: google.maps.TravelMode.DRIVING, // 車モード or 徒歩モード
	drivingOptions: { // 車モードの時のみ有効
		departureTime: new Date('2017/5/5 10:00:00'), // 2017年5月5日
		trafficModel: google.maps.TrafficModel.BEST_GUESS // 最適な検索
	}
}, function(response, status) {
	if (status == google.maps.DistanceMatrixStatus.OK) {

		// 出発地点と到着地点の住所(配列)を取得
		var origins = response.originAddresses;
		var destinations = response.destinationAddresses;

		// 出発地点でループ
		for (var i=0; i<origins.length; i++) {
			// 出発地点から到着地点への計算結果を取得
			var results = response.rows[i].elements;

			// 到着地点でループ
			for (var j = 0; j<results.length; j++) {
				var from = origins[i]; // 出発地点の住所
				var to = destinations[j]; // 到着地点の住所
				var duration = results[j].duration.value; // 時間
				var distance = results[j].distance.value; // 距離
				console.log("{},{},{},{}", from,  to, duration, distance);
			}
		}
	}
});

パラメータの「drivingOptions」は「travelMode」が「google.maps.TravelMode.DRIVING」のときのみ使用可能です。

その他、詳しいパラメータについてはこちらをご確認ください。

https://developers.google.com/maps/documentation/javascript/3.exp/reference?hl=ja#DistanceMatrixService

 

 

Distance Matrix API を使用することで、単純な直線距離ではなく『最適なルート』で近いお店を探すことができました。

 

マルティスープでは、様々な地図を活用したソリューションの提案を行っています。弊社ホームページにも沢山の事例がありますので、是非ご覧ください。

https://www.multisoup.co.jp

 

Google Maps の導入を検討している皆さま! ご質問などありましたら以下よりお問い合わせください。価格はこちらに記載しています。

Google Maps の契約プランと価格

 

 

【関連記事】こんな記事も読まれています

2017.01.16

東京の花粉量をヒートマップで可視化する

みなさん、こんにちは!

Google Maps JavaScript API のライブラリには、データ可視化ライブラリ(visualiza・・・

続きを読む

2016.08.26

国土地理院の地図でストリートビューを見る

みなさん、こんにちは!

前回、Googleマップで無償地図の「OpenStreetMap」を表示する方法を説明しましたが、今回は同じような形で・・・

続きを読む

2016.06.30

Google Maps APIsのライブラリ読み込み方法

みなさん、こんにちは!

Google Maps API のライブラリを読み込む方法は1つじゃないってご存知でしたか?

&n・・・

続きを読む

 - Google Maps APIs, Google Maps DistanceMatrix API, Google Maps JavaScript API, Google Places API, スタッフ日記

お問い合わせお見積もりから開発のご相談まで、お気軽にお問い合わせください。

(※)は入力必須項目です。

当社では、お客様がお問い合わせの際に必要な個人情報または、 お問い合わせ内容等につきましては、
お問い合わせの回答の目的のみに利用します。

Google Maps for Work™に関するご質問やお見積りは、
マルティスープまでお気軽にお問い合わせください03-3518-9013 (受付時間:平日 9:00−18:00)