私は、マップ上のピンを2つの関数呼び出しとマーカー[]配列を使って削除するGoogleマップ実装があります。Map marker [] arrayにイベントリスナーを追加する方法
これはうまくいきますが、マーカー変数が明示的に定義されていないため、関数にonClickイベントや他のタイプのイベントリスナーを追加する方法を理解できません。私は、これはここで
google.maps.event.addListener(markers, 'click', function() {
window.location.href = this.url;};
を?:ようなものを追加することができるだろう
は、私の基本的なマップコードと機能である:
var pinlocations = [
['1', {lat: 30.266758, lng: -97.739080}, 12, '/establishments/1111'],
['2', {lat: 30.267178, lng: -97.739050}, 11, '/establishments/1222'],
['3', {lat: 30.267458, lng: -97.741231}, 10, '/establishments/1333'],
['4', {lat: 30.388880, lng: -97.892276}, 9, '/establishments/1444']
];
var markers = [];
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: {lat: 30.267178, lng: -97.739050}
});
}
function drop() {
clearMarkers();
for (var i = 0; i < pinlocations.length; i++) {
var place = pinlocations[i];
addMarkerWithTimeout(place[1], place[0], place[2], place[3], i * 200);
}
}
function addMarkerWithTimeout(position, title, zindex, url, timeout) {
window.setTimeout(function() {
markers.push(new google.maps.Marker({
position: position,
map: map,
title: title,
zIndex: zindex,
url: url,
animation: google.maps.Animation.DROP
}));
}, timeout);
}
https://developers.google.com/maps/documentation/javascript/examples/event-simple。これはあなたが探しているものですか? marker.addListener( 'click'、..... ..... – gvfordo
@gvfordoこれは機能ですが、私のような機能を介して呼び出されるマーカーの完全な配列に適用する方法は示されていません。単一のvarマーカーでイベントを呼び出す方法 – Keith
新しいメーカーをvarに割り当てて、リスナーを追加し、varを配列にプッシュします。 – gvfordo