問題は次のとおりです。
ビューポートの外に出るときに、マップからすべてのマップ マーカーを削除したいと考えています。それらの位置をチェックし、マーカーで setMap(null) を実行するコードがあります。マーカーが消えます。次に、Google マップのドキュメントに従って、マーカー自体を null に設定して破棄します。
問題は、マップ マーカーを取得するための jquery-maps-ui の関数に、削除されたマーカーがまだ含まれていることです。
function cleanUpMarkers(map) {
console.log("$('#map_canvas').gmap('get', 'markers').length = " + $('#map_canvas').gmap('get', 'markers').length);
$.each($('#map_canvas').gmap('get', 'markers'), function (i, marker) {
if (!map.getBounds().contains(marker.getPosition())) {
console.log(marker.internalId);
marker.setMap(null);
marker = null;
delete marker;
//console.log(marker.internalId);
}
});
console.log("$('#map_canvas').gmap('get', 'markers').length = " + $('#map_canvas').gmap('get', 'markers').length);
}
$('#map_canvas').gmap('get', 'markers')が削除されたマーカーを返さないように、マーカーを本当に削除するにはどうすればよいですか?