如何通过它引用谷歌地图标记's id并激活它's使用javascript单击事件

How to reference a google map marker by it's id and activate it's click event using javascript?

本文关键字:激活 使用 javascript 事件 单击 id 何通过 图标 地图 引用 谷歌      更新时间:2023-12-10

我在这里处理谷歌地图和javascript。我在谷歌地图上有一个现有的标记,我可以点击它,它会显示一个div。如果我再次点击它,div就会消失。我给了这个标记一个特定的、唯一的id。

地图上还有一个多边形。我希望当用户点击多边形时,点击事件会激活标记,我将通过标记的id引用该标记。

这可能吗?如果是,那么假设标记的id是U123。我该怎么做?

以下是我用来向多边形单击添加事件的代码:google.maps.event.addListener(assetPolgons[polgon_count],'click',function(event){new google.maps.avent.trigger('U123','click');});

U123是标记id的名称。以上内容无效。

var marker = new google.maps.Marker(markerOptions);
marker.setValues({id: 1}); // v3 
marker.metadata = {type: "point", id: 1}; //v2 or v3

我想最好的方法是将标记存储在全局var中,然后进行

$(".something").click(function(){
new google.maps.event.trigger( marker, 'click' );
// Here marker is a global var so accessible everywhere.
});

谷歌中的两秒钟发现如何在谷歌地图V3上触发标记的onclick事件?

功能中唯一的区别是:

google.maps.event.trigger(markers[i], 'click');

我能看到的是你的,试着删除它

我构建了一个函数,该函数在存储每个标记的assetMarkers数组中循环。这项工作:

function ClickMarker(u) {
 for (i=0;i<assetMarkers.length;i++) {
  if (assetMarkers[i].id == u) {
   google.maps.event.trigger(assetMarkers[i], 'click');
   i = assetMarkers.length;
  }
 }
}

在上面的函数中,变量u是数组assetMarkets(存储映射标记的数组)中标记的id。当我创建标记时,我使用marker.setValues({id:'U123'})设置id;其中U123是标记的id。

我必须循环浏览assetMarkers数组才能找到我要找的那个。

我希望谷歌地图中会有相当于document.getElementById(u)的东西,这样我就不必在数组中循环了。谷歌API的伙计们,如果我们程序员能做这样的事情,那就太好了:

google.maps.event.trigger(google.maps.getElementById(u), 'click'); 

感谢大家的投入!这很有帮助,因为我是谷歌地图的新手。