Google Maps Apiでのルート検索

PCでのルート検索

Google Maps Api ルート検索

var map;
var directionsRenderer;
var directions;
var err = google.maps.DirectionsStatus;
var directionsErr = new Array();
directionsErr[err.INVALID_REQUEST] = "指定された DirectionsRequest が無効です。";
directionsErr[err.MAX_WAYPOINTS_EXCEEDED] = "DirectionsRequest に指定された DirectionsWaypoint が多すぎます。ウェイポイントの最大許容数は 8 に出発地点と到着地点を加えた数です。";
directionsErr[err.NOT_FOUND] = "出発地点、到着地点、ウェイポイントのうち、少なくとも 1 つがジオコード化できませんでした。";
directionsErr[err.OVER_QUERY_LIMIT] = "ウェブページは、短期間にリクエストの制限回数を超えました。";
directionsErr[err.REQUEST_DENIED] = "ウェブページではルート サービスを使用できません。";
directionsErr[err.UNKNOWN_ERROR] = "サーバー エラーのため、ルート リクエストを処理できませんでした。もう一度試すと正常に処理される可能性があります。";
directionsErr[err.ZERO_RESULTS] = "出発地点と到着地点間でルートを見つけられませんでした。";

//onload時の処理
function initialize() {
	//Google Maps初期設定
	var opts = {
		zoom:13,
		center:new google.maps.LatLng(35.729722,139.710388),
		mapTypeId:google.maps.MapTypeId.ROADMAP
	};
	map = new google.maps.Map(document.getElementById("map") , opts);		//Google Maps作成
	
	//ルートレンダラ生成
	directionsRenderer = new google.maps.DirectionsRenderer({
	polylineOptions: {
        strokeColor: '#FF0000',
        strokeWeight: 4,
        strokeOpacity: 0.7
      }
	});	
	directionsRenderer.setMap(map);	//ルートレンダラにマップを関連付け
}

//検索開始
function searchRoute() {
	//textboxからの値を取得
	var start = document.getElementById("start").value;
	var end = document.getElementById("end").value;
	//検索設定
	directions = new google.maps.DirectionsService();	//ルート生成
	//ルートリクエスト
	directions.route({
		origin:start,		//開始地点
		destination:end,	//終了地点
		travelMode:google.maps.DirectionsTravelMode.DRIVING,	//ルートタイプ(車)
		avoidHighways:true,		//高速道路(使わない)
		avoidTolls:true,		//有料道路(使わない)
		 optimizeWaypoints: true,	//最適化された最短距離にする。
	},
	function(results, status) {	//ルート結果コールバック関数
		if (status == err.OK) {	//検索結果がtrueの場合
			directionsRenderer.setDirections(results);
		} else {	//検索結果がfalseの場合
			alert(directionsErr[status]);
		}
	});
}

iphoneでのルート表示

あらかじめルートは指定しています。
Google Maps Api ルート表示(iphone)

var map;
var directionsDisplay = new google.maps.DirectionsRenderer;
var directionsService = new google.maps.DirectionsService();
function initialize() {
var myOptions = {
center:new google.maps.LatLng(35.67849, 139.39178),
zoom: 13,
mapTypeId:google.maps.MapTypeId.ROADMAP,
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map); 
calcRoute();
}
			 
var end = new google.maps.LatLng(35.724442,139.715447);
function calcRoute()
{
var request = {
origin: "池袋駅",
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING,
optimizeWaypoints: true,
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}