2

マーカーをマップに追加する前に、境界にマーカーが既に存在するかどうかを確認しようとしています。これを行う最善の方法は、

map.getBounds().contains(marker.getPosition())マーカーがマップ上に存在する場合は true を返し、存在しない場合は false を返します。false の場合は、マーカーをマップに追加します。

これは正常に機能しますが、複数の境界があり、map.getBounds()1 つの境界を取得しているようです。

以下のコードは、ループ内の各境界にマーカーを設定しますが、マーカーが 1 つの境界だけに存在するかどうかを確認します。すべての境界にマーカーが存在するかどうかを確認するにはどうすればよいですか?

最後の関数でマーカーをチェックしています。

function findPlaces() {      

    var boundsArray = new Array(); //my array of multiple boundaries  

    for (var i = 0; i < boundsArray.length; i++) {
      var boundary = boundsArray[i];                  

      // Perform search over this boundary
      var request = {
        bounds: boundary,
        keyword: document.getElementById("keyword").value
      };

      service.nearbySearch(request, callback); 
    }
  });
}


//Returns places and create markers
function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) {
       for (var i = 0; i < results.length; i++) {
       createMarker(results[i]);    
    }     
}   

//create markers
function createMarker(place) {                          
    var marker = new google.maps.Marker({
       position: place.geometry.location
    });

    var onMap = map.getBounds().contains(marker.getPosition());

    //if marker is not on the map, add it               
    if (onMap === false) {          
        marker.setMap(map);
    }
}
4

1 に答える 1