簡體   English   中英

Google Maps API將偵聽器添加到標記數組

[英]Google Maps API add Listeners to an array of markers

我有一張地圖,顯示基於數據庫的標記,這些標記保存在數組中。 現在,我想向他們添加動畫。 快速研究為我提供了有關單個標記的信息,但沒有提示我如何對多個標記執行這些操作。

作為Java的新手,我不太確定如何執行此操作。

我有一個基於PHP的foreach循環,在其中添加了標記。 (據我了解,數據庫請求僅適用於php)。

我嘗試插入

google.maps.event.addListener(flightMarkers[flightMarkers.length], 'click', flightMarkers[flightMarkers.length].setAnimation(google.maps.Animation.BOUNCE););

但隨后該地圖甚至不再顯示。

任何想法和提示將不勝感激! 提前致謝。

flightMarkers.length包含flightMarkers.length中的項目數。

所以當你有

flightMarkers = new Array();
flightMarkers[ 0 ] = "value";
flightMarkers[ 1 ] = "value";
flightMarkers[ 2 ] = "value";

flightMarkers.length將包含數字3 ,但該數組中的最后一個索引是2 在此示例中,當您輸入flightMarkers[flightMarkers.length]時,它將是flightMarkers[3] ,這是未定義的。

如果要僅將偵聽器添加到最后一個標記,請使用flightMarkers[flightMarkers.length - 1] 如果要將偵聽器添加到每個標記,請使用for循環:

for( var i = 0; i < flightMarkers.length; i++ ) {
    google.maps.event.addListener(flightMarkers[i], 'click', 
    flightMarkers[i].setAnimation(google.maps.Animation.BOUNCE););
}

感謝@ Dr.Molle和@Lukas Kovac,這是有效的:

 for (var i = 0; i < flightMarkers.length; i++) {
              google.maps.event.addListener(flightMarkers[i], 'click',

              function () {
                  this.setAnimation(google.maps.Animation.BOUNCE);
              });
          }

暫無
暫無

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

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