すべてのマーカーで経路を正しく表示するGoogleマップがあります。宛先がハードでコーディングされている https://jsfiddle.net/az5tk8ns/17/Googleマップで地図上のすべての目的地マーカーを表示していない、最初と最後だけ
: destinations = ["", "durban,KZN", " ixpop,kzn"]
私はその後、私のアドレスの配列を生成し、別の機能があります。
var addresses = [];
addresses.push('Durban, KZN');
addresses.push('izopo, KZN');`
を私はその後設定:
destinations = addresses
https://jsfiddle.net/az5tk8ns/19/
これを行うと、地図には出発地と目的地のマーカーのみが表示され、途中で停止することはありません。
ダイナミックに生成された住所の配列をGoogleマップに渡して、旅の各ポイントを表示できるようにするには、この方法をどのように使用できますか?
完全なGoogleマップ構文:いつものように
$(document).ready(function() {
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
var distancearray=[];
var addresses = [];
addresses.push('Durban, KZN');
addresses.push('izopo, KZN');
warehouse='ladysmith, kwa zulu natal';
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var chicago = new google.maps.LatLng(-28.5710903, 26.0826083);
var mapOptions = {
zoom: 7,
center: chicago
};
map = new google.maps.Map(document.getElementById('route_map_canvas'), mapOptions);
directionsDisplay.setMap(map);
calcRoute();
}
var origin = "johannesburg",
destinations = addresses
service = new google.maps.DistanceMatrixService();
function calcRoute() {
var waypts = [];
for (var i = 1; i < destinations.length - 1; i++) {
waypts.push({
location: destinations[i],
stopover: true
});
}
var request = {
origin: origin,
destination: destinations[destinations.length - 1],
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var orig = document.getElementById("orig"),
dest = document.getElementById("dest"),
dist = document.getElementById("dist");
orig.value = response.routes[0].legs[0].start_address;
dest.value = response.routes[0].legs[0].end_address;
var total_distance = 0.0;
for (var i = 0; i < response.routes[0].legs.length; i++) {
total_distance += response.routes[0].legs[i].distance.value;
distancearray.push([response.routes[0].legs[i].distance.value]);
//alert(distancearray);
}
dist.value = total_distance + " meters";
}
});
}
initialize();
})
おかげで、
あなたが開始と終了として使用されているdestinations
変数で唯一の2つの宛先があることを除いて、正しいすべてを行っている
ありがとうございます。実際に最初の宛先を開始点として扱いますので、助けていただければ幸いです。 – Smudger