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 上添加多个目的地

Google Map API Javascript v3-如何在多边形/矩形区域内突出显示特定街道/街道段?

在单击 Google Map API V3 时使用 infoWindow 或 InfoBox 触发事件