【发布时间】:2013-03-22 01:10:57
【问题描述】:
我有一个谷歌地图,它使用融合表层来动态设置大量多边形的样式。在这一层之上,我还在多边形本身的特定 LatLng 位置生成一组标记。我希望有以下行为:
- 当您单击多边形上的任意位置时,应该会弹出一个信息窗口,其中填充了融合表中的数据。这是有效的。
- 当您单击标记时,它应该将单击事件传递到融合表层并创建相同的弹出窗口,就好像在标记的 LatLng 发生自然单击一样。这就是我正在努力解决的问题,目前还没有工作。我正在为每个标记添加一个点击侦听器,然后使用它来触发对我的融合表层的点击,或多或少如建议的here:
这是我用来为每个标记添加侦听器的代码:
function addMarkerListener(city, LatLng){
google.maps.event.addListener(city, "click", function(e) {
google.maps.event.trigger(layer, 'click', {
latLng: LatLng
});
});
}
在这种情况下,layer 是我的融合表层。
使用这个,点击触发,但我实际上并没有从我的融合表中获取任何数据(存储在鼠标事件对象的行变量中)。相反,我的鼠标事件直接传递给了融合表层上的侦听器,该侦听器通常会处理点击。
如何以编程方式在融合表层上创建一个点击事件,该事件将像自然点击一样从融合表中提取数据?
【问题讨论】:
-
你有没有想过这个问题? @wf9a5m75 中的示例不会模拟对 FusionTableLayer 的任意点击,它会加载数据集的副本,并且只允许“点击”数据集中已有的坐标。
标签: google-maps google-fusion-tables