GoogleマップApiを使用してウェブアプリケーションを構築し、ポリラインクリックイベントに問題が発生しました。 マップにマーカーを追加しようとしましたが、それらを一緒に結合しました。私は、ポリラインをクリックすると、そのポリラインの始点と終点であるマーカーを得ることができると思います。しかし、1つの結果だけは、私は別のpolylines.Here私のソースコードをクリックし、すべての回で同じ同じ返される:あなたのpolyLineClicked機能で複数のGoogleマップポリラインクリックイベント
var locations = [
{ title: "Site 1", lat: 16.044137, lng: 108.206511 },
{ title: "Site 2", lat: 16.067161, lng: 108.186259 },
{ title: "Site 3", lat: 16.063472, lng: 108.215248 },
{ title: "Site 4", lat: 16.041847, lng: 108.193539 },
{ title: "Site 5", lat: 16.054186, lng: 108.172890 },
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 14,
center: new google.maps.LatLng(16.067161, 108.186259),
mapTypeId: google.maps.MapTypeId.SATELLITE
});
var infowindow = new google.maps.InfoWindow();
var polyLineClicked = function (polyline, fromIndex, toIndex) {
google.maps.event.addListener(polyline, 'click', function (e) {
infowindow.setContent = fromIndex + " to " + toIndex;
infowindow.setPosition = event.latLng;
infowindow.open(map);
});
}
for (var i = 0; i < locations.length; i++) {
var position = new google.maps.LatLng(locations[i].lat, locations[i].lng);
var marker = new google.maps.Marker({
position: position,
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function() {
infowindow.setContent(locations[i].title);
infowindow.open(map, marker);
}
})(marker, i));
if (i <= locations.length - 2) {
var nextPosition = new google.maps.LatLng(locations[i + 1].lat, locations[i + 1].lng);
var polyline = new google.maps.Polyline({
path: [position, nextPosition],
strokeColor: 'black',
strokeOpacity: 1,
strokeWeight: 7,
map: map,
fromPositionIndex: i,
toPositionIndex: i+1
});
var fromIndex = locations[i].title;
var toIndex = locations[i + 1].title;
polyLineClicked(polyline, fromIndex, toIndex);
}
}
(任意の情報ウィンドウが表示されません) – geocodezip