ブラウザが地理位置情報をサポートしているかどうかを確認し、ユーザーの地理位置情報を取得してマップの中央に配置する次の関数があります。
ユーザーの地理的位置から固定された場所 (これは変更されません) への方向をユーザーに提供できるようにするには、何を追加する必要がありますか?
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(function(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
var coords = new google.maps.LatLng(latitude, longitude);
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var mapOptions =
{
zoom: 15,
center: coords,
mapTypeControl: true,
navigationControlOptions:
{
style: google.maps.NavigationControlStyle.SMALL
},
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("mapContainer"), mapOptions);
var marker = new google.maps.Marker(
{
position: coords,
map: map,
});
});
}
else
{
alert("Geolocation API is not supported in your browser.");
この関数をコードに追加しました:
function calcRoute() {
var start = position;
var end = "London";
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function (result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
}
HTML:
<div id="mapContainer" onload="calcRoute()"></div>
しかし、まだ機能していないようです。