通过它查询谷歌地图上已经存在的标记's的lat和long,并以编程方式在其上触发一个单击事件

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

本文关键字:方式 编程 单击 事件 一个 存在 谷歌地图 查询 lat long      更新时间:2024-04-02

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

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

它工作得很好,但代码创建了一个新的标记。

我不知道该怎么做,就是通过坐标(lat和lng)"查询"地图上已经存在的标记所以,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的想法只做了一个小改动。谷歌恰好为标记添加了精度。例如,在(60.123420.5678)处添加的标记将返回lat/lng,例如(60.1234xxxxxx,20.5678xxxxx)。因此,将地图返回的标记位置与用于设置标记位置的纬度/经度进行比较是行不通的,可能的解决方案包括四舍五入值,然后进行比较或使用其他参数进行比较。