google-maps - 如何在点击时识别谷歌地图标记?

标签 google-maps google-maps-api-3 cfml

我正在从开发人员 API v3 创建一个谷歌地图。它填充了从 ColdFusion 查询 MsSQL 数据库动态创建的标记。

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

我需要一种在单击标记时识别标记的方法,以便我可以在 map 下方的框中显示地址详细信息,并在单击页面下方的按钮时突出显示标记。

最佳答案

通常,您通常会将自己的自定义属性分配给标记。就像是:

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 对象都有风险。谷歌的代码被混淆了,内部(未记录的)属性可以而且确实会改变。确保您的属性(property)以不会与任何现有属性(property)或 future 属性(property)冲突的方式命名。提示:选择长度超过 3 个字母的属性名称。

如果您要缩小/编译/压缩 map 代码,则有 additional considerations .

关于google-maps - 如何在点击时识别谷歌地图标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299495/

相关文章:

javascript - 在关闭 cfwindow 重新加载父页面时

coldfusion - 在 CF2016 中,变量和 This 是否被视为 CFC 内的隐式范围?

javascript - Google map API,包含位置() 您的地址在哪个多边形中找到?

android - Android 上的拖动 map 监听事件

javascript - map 在第一次打开页面时不加载,重新加载后即可工作

android - 如何使用 Google Maps V2 删除单个标记?

angularjs - Angular-Google-Maps 与 Angular-UI/UI-Map

javascript - Google Maps API v3 : Geocoding Reversal, 仅打印出一个标记(javascript)

javascript - 从 Json 数据异步加载 Google map 标记

tomcat - Railo CFHTTP SSL trustAnchors 参数必须非空