マウス クリックでマーカーを削除すると問題が発生しました。まあ、物事は見た目ほど単純ではありません。
function addPoint(event) {
path.insertAt(path.length, event.latLng);
var marker = new google.maps.Marker({
position: event.latLng,
map: map
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
marker.setMap(null);
markers.splice(i, 1);
}
);
そのコードを使用した場合、マーカーを作成するときにすぐにリスナーを追加し、それを削除するのは簡単marker.setMap(null);
です。しかし、私の場合、それらを作成してから、それらを使用してイベントリスナーを追加したいと考えています
function usun(){
for (var i=0; i<markersArray.length; i++){
google.maps.event.addListener(marker, 'click', function() {
alert('lol');
});
}
各マーカーにイベントを追加できるように各マーカーをプッシュしてmarkersArray
いますが、どうすれば削除できますか? アラートの代わりに配置すると、マーカーが定義されていないと表示され、クリックしたばかりのマーカーをどのように参照できるかわかりません。エラーが発生marker.setMap(null);
しているため、マーカーをグローバル変数として使用することもできません。Uncaught TypeError: Cannot read property '__e3_' of undefined
編集:私が使用しようとすると
function usun(){
for (var i=0; i<markersArray.length; i++){
google.maps.event.addListener(markersArray[i], 'click', function() {
markersArray[i].setMap(null);
});
}
エラーが発生しますUncaught TypeError: Cannot call method 'setMap' of undefined
。そのため、「マーカー」を使用する必要があると確信していました。