簡體   English   中英

Google Maps API V3通過不同的圖標指示同一位置的多個標記

[英]Google Maps API V3 Indicate multiple markers in same location by different icon

我正在研究所有代碼示例,並且有一個頁面工作顯示多個標記。 我有一系列位置,有時我在同一位置有多個標記。 僅顯示最上面的一個,這很好,但是我想通過更改圖標來指示隱藏了更多標記。

for (i = 0; i < locations.length; i++) 
{  
  marker = new gm.Marker({
    position: new gm.LatLng(locations[i][1], locations[i][2]),
    map: map,
    icon: MarkerImg,
  });
}

我似乎無法將條件代碼添加到“ icon:MarkerImg”行中,如果坐標與前一個匹配,則將其更改為其他圖標。

有什么方法可以有條件聲明(如果多數民眾贊成在正確的術語)謝謝。

如果您需要做的只是檢查上一個標記,只需保留對其的引用即可:

var lastMarker = null;
for (i = 0; i < locations.length; i++) 
{  
  var marker = new gm.Marker({
    position: new gm.LatLng(locations[i][1], locations[i][2]),
    map: map,
    icon: MarkerImg,
  });
  if (!!lastMarker && !!lastMarker.getPosition &&
      (marker.getPosition().equals(lastMarker.getPosition()))) {
       marker.setIcon(MarkerImg2);
  }
  lastMarker = marker;
}

小提琴

注意:請注意 google.maps.LatLng.equals ,坐標必須完全相同 可能希望選擇一個閾值(例如0.1米),並考慮比“在同一位置”的標記更近的標記。

做到了這一點,並進行了一些編輯:是的,標記將按順序排列,因此更加容易。 在相等之前,我必須為lastMarker定義位置。 我選擇了0,0,因為我認為它不太可能被使用。 好的解決方案? 另外,我還將lastMarker設置為當前標記,以進行下一次迭代。 標記上的好點並不完全在同一位置。 目前它們是,但是值得進一步研究。

lastMarker = new gm.Marker(
    {
    position: new gm.LatLng(0,0)
    });

for (i = 0; i < locations.length; i++) 
    {  
    marker = new gm.Marker(
        {
        position: new gm.LatLng(locations[i][1], locations[i][2]),
        map: map,
        icon: MarkerImg,
        });
    if (marker.getPosition().equals(lastMarker.getPosition())) {
        marker.setIcon(MultiMarkerImg);
        }
    lastMarker = marker;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM