所以我遇到了问题;我有google api 3代码,它调用2个Fusion表,现在我想添加一些可点击的html元素,当点击时,他们会从融合表调用某些多边形并自动打开它们(已经定制的)infowindows。
我的代码在这里: http://jsfiddle.net/zVaGN/1/
我希望得到这样的效果: http://econym.org.uk/gmap/example_egeotestmon.htm
我一直在看这个代码而我找不到解决方案因为我不熟练编码。我需要一些函数,通过调用一些proprety(融合表中的列)从fusiontable调用一个层,然后当用户点击一个html元素时,弹出特定层的infowindow。
请帮帮我们!
更新: 单击poylgon时已经可以获得infowindow,但是我希望得到infowindow在点击另一个html元素时打开的效果,请看一下这个例子: jsfiddle.net/zVaGN 在这里,我把链接放在地图之前的顶部,上面写着“Sisak”,现在我希望当我点击这个链接时,这个多边形的信息窗口(在我的fusiontalbe中名为Sisak)会弹出。这可能吗?
更新2: 所以我已经拥有了我在Fusiontables中制作的自定义infowindows,我只希望函数使用fusiontable值查询html元素中的值并调用infowindow弹出窗口?你了解,所以我有我的多边形,我有每个多边形的自定义信息窗口,现在我想制作一个除我的googlemap之外的HTML列表,以便当用户点击侧边栏列表中的特定名称时,那么它的信息窗口polygon popsup?
我已经尝试过这个代码,它可以调用在fusiontables中制作的infowindow,但我不会工作。这是google api:
function izbor() {
var infowindow = google.maps.FusionTablesLayer({
});
infowindow.open(map);
}
稍后在html的主体中我尝试实现这个功能:
<div style="position:absolute; top:700px; left:100px;" >
<a href="#" title="Sisak" value="Sisak" onclick="izbor()">Sisak</a><br />
</div>
但不会发生
我也尝试过这段代码来调用在fusiontables中创建的infowindow,它有一个div class =“googft-info-window”:
function izbor() {
var infowindow = new google.maps.InfoWindow({
query: {"SELECT '.googft-info-window' FROM" + tableid};
});
infowindow.open(map);
}
但没有任何反应
还尝试使用ExtendedData这个代码,因为当我将我的fusiontable导出到kml时,它将infowindow解析为ExtendedData
function izbor() {
var infowindow = new google.maps.InfoWindow({
query: {" SELECT 'ExtendedData' FROM " + tableid};
});
infowindow.open(map);
}
但又一无所获:(
答案 0 :(得分:0)
您的示例使用多边形,并且可以处理单击它。您也可以处理点击,但只能处理您区域(图层)的边框
google.maps.event.addListener(layer, 'click', function()
{
// Your info window should be opened here
alert("Clicked");
});
点击区域的边框,查看:)
<强>更新:强>
function izbor() {
layer.setOptions({
query: "SELECT geometry FROM " + tableid + " WHERE Naziv = 'Sisak'"
});
var infowindow = new google.maps.InfoWindow({
content: "Info"
, position: new google.maps.LatLng(44.75324026267657, 16.810970306396484)
});
infowindow.open(map);
}