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

Abi*_*bid 109 google-maps google-maps-api-3 google-maps-markers

有没有办法可以为我的标记添加一些自定义信息供以后使用.有一些方法可以有一个信息窗口和标题,但如果我想将标记与其他信息相关联.

我在页面上显示的其他内容依赖于标记,因此当单击标记时,页面上的内容必须根据单击的标记进行更改.我想在标记出现后存储并检索自定义数据点击等

谢谢

Tin*_*ehr 201

由于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";
Run Code Online (Sandbox Code Playgroud)

然后以类似的方式检索它:

google.maps.event.addListener(markerA, 'click', function() {
    alert(this.customInfo);
});
Run Code Online (Sandbox Code Playgroud)

  • 正式化此模式的[文档](https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions)中没有任何内容.这里希望他们不要在以后的版本中打破它. (3认同)
  • 如果您使用的是打字稿,您可能需要使用方括号而不是点来分配此类属性 (2认同)

geo*_*zip 14

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