Google Map API V3:如何将自定义数据添加到标记
Posted
技术标签:
【中文标题】Google Map API V3:如何将自定义数据添加到标记【英文标题】:Google Map API V3: How to add Custom data to markers 【发布时间】:2012-07-07 20:55:03 【问题描述】:有没有办法可以将一些自定义信息添加到我的标记中以供以后使用。有一些方法可以有一个信息窗口和一个标题,但是如果我想将标记与其他信息相关联。
我在页面上显示的其他内容取决于标记,因此当单击标记时,页面上的内容必须根据单击的标记而改变。我想在标记后存储和检索自定义数据比如说点击等等。
谢谢
【问题讨论】:
【参考方案1】:您可以将自己的自定义属性添加到标记中(请注意不要与 API 的属性冲突)。
【讨论】:
【参考方案2】:由于 Google Marker 是一个 javascript 对象,您可以以 key: value
的形式添加自定义信息,其中 key 是一个有效的字符串。它们被称为对象属性,可以通过许多不同的方式来处理。该值可以是任何合法的东西,如数字或字符串,也可以是函数,甚至是其他对象。三种简单的方式:在声明中,点符号和方括号
var markerA = new google.maps.Marker(
map: map,
position: new google.maps.LatLng(0, 0),
customInfo: "Marker A"
);
var markerB = new google.maps.Marker(
map: map,
position: new google.maps.LatLng(-10, 0)
);
markerB.customInfo = "Marker B";
var markerC = new google.maps.Marker(
map: map,
position: new google.maps.LatLng(-20, 0)
);
markerC['customInfo'] = "Marker C";
然后以类似的方式检索它:
google.maps.event.addListener(markerA, 'click', function()
alert(this.customInfo);
);
【讨论】:
the documentation 中没有任何内容正式化此模式。希望他们这样做,而不是在以后的版本中破坏它。 “标记”类型上不存在属性“customInfo”。 如果您使用的是 typescript,您可能希望使用方括号而不是点来分配此类属性以上是关于Google Map API V3:如何将自定义数据添加到标记的主要内容,如果未能解决你的问题,请参考以下文章
Google Map API V3-MarkerCluster 未定义
javascript Google Map API v3 Ghetto示例
使用 Google Map API v3 绘制多边形和获取坐标 [关闭]
使用 google map javascript api v3 在 google map 上添加多个目的地