通过纬度和经度查询 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 进行比较是行不通的,可能的解决方案包括对值进行四舍五入,然后比较或使用其他一些参数进行比较。
我试图以编程方式点击一个标记,我发现了这个:
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 进行比较是行不通的,可能的解决方案包括对值进行四舍五入,然后比较或使用其他一些参数进行比较。