0
私は2つのことをやろうとしています:マーカーが移動したときにマーカーを移動したときにGoogle Maps APIの指示を再描画しますか?
- は、ルートを再描画します。
- マーカーが移動したときに、新しい
customer
位置のGPS値を入力します。
私は最終的に可動マーカーを動作させましたが、値を更新していないか、ルートを再描画していません。私は何が欠けていますか?
HTML:
<div id="map_canvas" style="width:500px;height:380px;"></div>
<br>
<input type="text" class="form-control" id="customer_location" value="" readonly="true">
JS:
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize_create_task_map() {
directionsDisplay = new google.maps.DirectionsRenderer({
suppressMarkers: true
});
var newyork = new google.maps.LatLng(40.621757, -73.984927);
var myOptions = {
zoom:14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: newyork
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map);
printRoute();
}
function printRoute() {
var distanceInput = document.getElementById("distance");
var restaurant = "40.679666, -73.964425";
var customer = "40.615758, -74.007652";
var locations = [
['Restaurant', 40.679666, -73.964425,'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png'],
['Customer', 40.615758, -74.007652,'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png']
];
var request = {
origin:restaurant,
destination:customer,
waypoints: [],
travelMode: google.maps.DirectionsTravelMode.WALKING
};
console.log("Preparing marker...");
//add marker to each locations
for (i = 0; i < locations.length; i++) {
console.log("Adding marker...");
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
draggable:true,
icon: locations[i][3]
});
google.maps.event.addListener(marker, 'dragend', function()
{
distanceInput.value = marker.getPosition();
});
}
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize_create_task_map);
ライブフィドル:マーカーをドラッグする上https://jsfiddle.net/w1nae25n/2/