3

我有一个谷歌地图,它使用融合表层来动态设置大量多边形的样式。在这一层之上,我还在多边形本身的特定 LatLng 位置生成一组标记。我希望有以下行为:

  • 当您单击多边形上的任意位置时,应该会弹出一个 infoWindow,其中填充了融合表中的数据。这是有效的。
  • 当您单击标记时,它应该将单击事件传递到融合表层并创建相同的弹出窗口,就好像在标记的 LatLng 发生自然单击一样。这就是我正在努力解决的问题,目前还没有工作。我正在为每个标记添加一个点击侦听器,然后使用它来触发对我的融合表层的点击,或多或少如这里建议的那样:

这是我用来为每个标记添加侦听器的代码:

function addMarkerListener(city, LatLng){
    google.maps.event.addListener(city, "click", function(e) {
      google.maps.event.trigger(layer, 'click', {
        latLng: LatLng
      });
    });
}

在这种情况下,layer是我的融合表层。

使用这个,点击触发,但我实际上并没有从我的融合表中获取任何数据(存储在鼠标事件对象的行变量中)。相反,我的鼠标事件直接传递给融合表层上的侦听器,该侦听器通常会处理点击。

如何以编程方式在融合表层上创建一个点击事件,它将像自然点击一样从融合表中提取数据?

4

1 回答 1

1

这是 Fusion Table Layer 的一个示例,它以编程方式单击侧边栏中的标记。 在此处输入图像描述

从此页面查看整个代码。 http://googlemaps.googlermania.com/google_maps_api_v3/en/fusion-tables-sidebar.html

于 2013-04-01T02:05:29.123 回答