簡體   English   中英

如何在點擊時識別谷歌地圖標記?

[英]How to identify a google map marker on click?

我正在從開發人員API v3創建Google Map。 它填充了從ColdFusion查詢MsSQL數據庫動態創建的標記。

 <cfloop query="One">
 <script>locations[<cfoutput>#One.userID#</cfoutput>
] = new google.maps.LatLng(<cfoutput>#One.latLng#</cfoutput>);
 </script>
 </cfloop>

我需要一種方法來識別單擊時標記,這樣我就可以在地圖下方的框中顯示地址詳細信息,並在頁面下方單擊按鈕時顯示高光標記。

通常,您通常會將自己的自定義屬性分配給標記。 就像是:

function markerClicked(e) {
    console.log('Marker ' + marker.myData + ' has been clicked');
}
var marker = new google.maps.Marker(...);
marker.myData = 1; //this could be arbitrary data or even another object
google.maps.event.addListener(marker, 'click', markerClicked);

但是,將自定義數據添加到任何Google Maps API對象都存在風險。 谷歌的代碼被混淆,內部(未記錄)屬性可以並且確實發生變化。 確保您的財產的命名方式不會與任何現有財產或未來財產發生沖突。 提示:選擇長度超過3個字母的屬性名稱。

如果您要縮小/編譯/壓縮地圖代碼,則還有其他注意事項

關於什么 :

google.maps.event.addListener(marker, "click", function (e) {
    var clicked = this;
    //...
});

這在文檔中已經完全記錄/解釋。

https://developers.google.com/maps/documentation/javascript/overlays#InfoWindows

創建標記時,將dom偵聽器添加到標記中,如下所示

  google.maps.event.addListener(marker, 'click', function() {
     infowindow.open(map,marker);
  });

暫無
暫無

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

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