我有一个谷歌地图,它使用融合表层来动态设置大量多边形的样式。在这一层之上,我还在多边形本身的特定 LatLng 位置生成一组标记。我希望有以下行为:
- 当您单击多边形上的任意位置时,应该会弹出一个 infoWindow,其中填充了融合表中的数据。这是有效的。
- 当您单击标记时,它应该将单击事件传递到融合表层并创建相同的弹出窗口,就好像在标记的 LatLng 发生自然单击一样。这就是我正在努力解决的问题,目前还没有工作。我正在为每个标记添加一个点击侦听器,然后使用它来触发对我的融合表层的点击,或多或少如这里建议的那样:
这是我用来为每个标记添加侦听器的代码:
function addMarkerListener(city, LatLng){
google.maps.event.addListener(city, "click", function(e) {
google.maps.event.trigger(layer, 'click', {
latLng: LatLng
});
});
}
在这种情况下,layer
是我的融合表层。
使用这个,点击触发,但我实际上并没有从我的融合表中获取任何数据(存储在鼠标事件对象的行变量中)。相反,我的鼠标事件直接传递给融合表层上的侦听器,该侦听器通常会处理点击。
如何以编程方式在融合表层上创建一个点击事件,它将像自然点击一样从融合表中提取数据?