通过纬度和经度查询 google 地图上已存在的标记,并以编程方式在其上触发点击事件

Query a marker that alraedy exists on the google map by it's lat and long and programmatically trigger a click event on it

我试图以编程方式点击一个标记,我发现了这个:

var marker = new google.maps.Marker({});
new google.maps.event.trigger( marker, 'click' );

它运行良好,但代码创建了一个新标记。

我不知道该怎么做,"query" 一个已经在地图上的坐标(纬度和经度)标记 因此,var 标记将是这样的:

var marker = google.maps.query(lat, lng);

有什么办法吗?

您应该在数组中添加所有标记:

 var markersArray = [];

 markersArray.Push(marker);

然后搜索:

 if (markersArray) {
            for (i in markersArray) {
               if(markersArray[i].position.lat() == 'yourlat' && markersArray[i].position.lng() == 'yourlng' )
                   new google.maps.event.trigger( markersArray[i], 'click' );
            }

        }

这没有经过测试。只是一个想法。

@Irfan 的想法稍作改动即可。 Google 恰好增加了标记的精度。例如,在 (60.1234, 20.5678) 处添加的标记将 return a lat/lng 例如 (60.1234xxxxxx, 20.5678xxxxx)。 因此,将地图上的标记位置 return 与您用来设置标记位置的 lat/lng 进行比较是行不通的,可能的解决方案包括对值进行四舍五入,然后比较或使用其他一些参数进行比较。