Google Maps API V3を使用してマーカーをマーカーに配置しています。同じLatLngを持つ複数のマーカーのために重複するマーカーがある可能性があるので、最初のもの以外のすべての重複マーカーを削除しようとしています(setMap(null)
とsetVisible(false)
)。setVisible(false)はマーカーを削除しますが、setMap(null)を削除しません。
問題:setMap(null)
がマーカーで使用されている場合、関数は何もしていないように見え、マーカーはマップ上に残ります。しかし、setVisible(false)
を使用すると、マーカーは実際に消えます。
これはどうして起こりますか?
は、私はまた、使用されるマーカーのクラスタラプラグインがすでにsetVisible(false)
とsetMap(null)
されているすべての重複マーカー、
JSコード
$.getJSON(getJSON_url,
{
someValues: someValues
},
function(json){
for(i = 0; i < json.length; i++) {
// Check if marker already exist at that LatLng
var duplicate_marker = 0;
for(var j = 0; j < markers.length; j++) {
// If marker exists
if(json[i].lat == markers[j].getPosition().lat() && json[i].lng == markers[j].getPosition().lng()) {
console.log(json[i].lat + ' ' + json[i].lng + ' ' + i + ' ' + markers[j].getPosition().lat() + ' ' + markers[j].getPosition().lng() + ' ' + j);
duplicate_marker = 1;
break;
}
}
// Place markers on map
var latLng = new google.maps.LatLng(json[i].lat, json[i].lng);
var marker = new google.maps.Marker({
position: latLng,
icon: base_url + 'images/template/markers/listing.png',
map: map
});
markers.push(marker);
// Make duplicate marker invisible
if(duplicate_marker) {
//marker.setMap(null);
marker.setVisible(false);
}
なぜ重複マーカーを作成しないのですか?あるいは、少なくとも 'map'パラメータを指定せずにマーカーを作成し、後でそれを設定したら? – hamczu