单击一个html元素打开多边形infowindow

时间:2012-04-12 14:00:01

标签: google-fusion-tables

我正在写google api 3代码,在这里:http://jsfiddle.net/zVaGN/2/ 首先我调用两个Fusiontables出现在地图上,然后我在地图外创建了一个html元素,当点击它时,应打开我之前在Fusiontables中创建的自定义信息窗口。所以我不知道如何创建一个函数,当我点击一个html元素时,它将从fusiontables调用已经创建的infowindows。 所以我想要这个效果http://econym.org.uk/gmap/example_egeotestmon.htm 但我的应该从已经存在的融合表中调用自定义信息窗口。怎么做???

谢谢任何人!

更新

感谢Eric的回复。我不知道这个,我尝试了一个看起来像这样的函数:

function izbor() {
var infowindow = new google.maps.InfoWindow({
query: {" SELECT 'ExtendedData' FROM " + tableid};
    });
infowindow.open(map);
}

但我不知道从表中调用什么,在fusiontables中infowindows的名称是什么..我调用了ExtendedData,因为当我将fusiontable导出到kml文件时,那就是infowindow的代码,但是我写的google api 3的代码可能并不好..

更新#2

我在这里尝试过,但它不起作用.. jsfiddle.net/zVaGN/4 /

无论如何,谢谢你的帮助,如果你想出其他解决方案,请写下来!

1 个答案:

答案 0 :(得分:0)

我不认为这在Fusion Tables中是可行的。在Fusion Tables中,您无法控制地图上显示的叠加层的创建,无论是标记还是多边形。 Fusion Tables使用已经渲染的叠加层动态创建磁贴,而AFAIK除了使用infoWindowSuppress:false之外,您无法控制它们上的点击事件,这允许您使用FT点击事件返回的值显示您自己的infoWindow

修改

此函数将显示从Fusion Tables返回的html。似乎应该有一种方法可以在页面内触发图层上的点击事件。

 google.maps.event.addListener(layer, 'click', function(e){
     alert(e.infoWindowHtml);
 }