【发布时间】:2012-12-27 17:19:01
【问题描述】:
我正在构建我的第一个 Fusion Tables,并将两个 Fusion Tables 带入 Google 地图 - 一个多边形和一个点。当您单击多边形或点时,我不想显示常规信息窗口,而是想从 Fusion Table 中提取一些数据,但它无法正常工作:
<script>
function initialize() {
var england = new google.maps.LatLng(53.2, -2);
map = new google.maps.Map(document.getElementById('map_canvas'), {
center: england,
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layer1 = new google.maps.FusionTablesLayer({
query: {select: 'geometry', from: '1HgGUc72F2Wlp6dvy4GWvLyWrl1kC6aJhnM7jPyc'},
styles: [
{ where: "Score = 0", polygonOptions: { fillColor: "#cdcdcd", fillOpacity: 0.3 } },
{ where: "Score = 1", polygonOptions: { fillColor: "#FF0000", fillOpacity: 0.5 } },
{ where: "Score = 2", polygonOptions: { fillColor: "#FF7E00", fillOpacity: 0.5 } },
{ where: "Score = 3", polygonOptions: { fillColor: "#008000", fillOpacity: 0.5 } }],
options: {suppressInfoWindows: true},
map: map,
});
google.maps.event.addListener(layer1, 'click', function(e) {e.infoWindowHtml = "Score" + e.row['Score'].value;}
});
layer2 = new google.maps.FusionTablesLayer({
query: {select: 'postcode', from: '1bawAKwQAUGE4mzYSyw4lTbOcgp7MgIGOLROel8Y'},
options: {suppressInfoWindows: true},
map: map,
});
google.maps.event.addListener(layer2, 'click', function(e) {e.infoWindowHtml = "Postcode" + e.row['Postcode'].value;}
});
google.maps.event.addDomListener(window, 'load', initialize);
}
</script>
</head>
<body onLoad="initialize()">
<div id="map_canvas"></div>
</body>
</html>
It was all working well,infowindows 被抑制,直到我添加了 AddListener 和 addDomListeners。谁能帮我回到正轨,好吗?
【问题讨论】:
-
你的尝试不会有太大的成功。当您单击一个点时,单击不会将单击事件传递给底层的多边形层(并且 AFAIK 无法更改这一点)。只要两个表之间没有任何关系,这将永远不会起作用,因为没有这种关系,甚至没有机会通过给定坐标请求两个表。
标签: google-maps-api-3 google-fusion-tables infowindow