Google Maps APIで通りを強調表示することは可能ですか?
この効果に近いと私が見つけた唯一のことは、それらの上に線を引くことでした。しかし、これは多くの作業であり、より不正確です。行は地名にも適用されます。
私が欲しいのは、ポイントaからbにナビゲートしているかのように、特定のストリート名を強調表示することです。たとえば、10通りがストリートワーカーによって閉鎖されている場合、それらのストリートを強調表示できます。
質問する
12063 次
1 に答える
15
これは、MapsAPIの方向レンダラーを使用することで実際に非常に簡単に実行できます。
通りの始点と終点の緯度/経度座標を指定する必要があり、レンダラーがすべての計算とペイントを行います。方向の手順を読んで、自分でポリラインを描く必要はありません。
ここで実際の動作を確認してください:http:
//jsfiddle.net/HG7SV/15/
これはコードです。すべての魔法は関数initialize()で行われます。
<html>
<head>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
function initialize() {
// init map
var myOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// init directions service
var dirService = new google.maps.DirectionsService();
var dirRenderer = new google.maps.DirectionsRenderer({suppressMarkers: true});
dirRenderer.setMap(map);
// highlight a street
var request = {
origin: "48.1252,11.5407",
destination: "48.13376,11.5535",
travelMode: google.maps.TravelMode.DRIVING
};
dirService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
dirRenderer.setDirections(result);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
通りが曲がっていて、レンダラーが意図しないショートカットを見つけた場合は、中間のウェイポイントを追加して、描画した線を目的の通りに正確に合わせると、簡単に修正できます。
var request = {
origin: "48.1252,11.5407",
destination: "48.13376,11.5535",
waypoints: [{location:"48.12449,11.5536"}, {location:"48.12515,11.5569"}],
travelMode: google.maps.TravelMode.DRIVING
};
于 2012-11-15T10:39:48.353 に答える