Google Map API V3:如何将自定义数据添加到标记


116

有没有一种方法可以将一些自定义信息添加到标记中以供以后使用。有一些方法可以拥有一个信息窗口和标题,但是如果我想将标记与其他信息相关联该怎么办。

我还会在页面上显示其他内容,这些内容取决于标记,因此当单击标记时,页面上的内容必须根据所单击的标记进行更改。点击等

谢谢

Answers:


213

由于Google标记是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);
});

3
文档中没有任何形式化这种模式。希望他们这样做而不是在以后的版本中破坏它。
亚当

1
属性“ customInfo”在“标记”类型上不存在。
alehn96

1
如果您使用的是打字稿,则可能需要使用方括号而不是点来分配此类属性
Cocoduf

14

您可以将自己的自定义属性添加到标记中(请注意不要与API的属性冲突)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.