我试图弄清楚如何将Google Fusion表格创建的Google地图多边形(整个多边形)设置为指向其他网页的可点击链接。我原本以为要在多边形中添加一个事件监听器并使用"这个"但是我忘记了那不起作用,因为我没有生成多边形,融合表是。如果有人能指出我正确的方向或帮助它将非常感谢!
到目前为止我所拥有的是融合表的正常代码:
var map;
var layer_1;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(33.205, -97.1325),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layer_1 = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query: {
select: "col0",
from: "/*Fustion Table ID*/",
},
map: map,
styleId: 2,
templateId: 2
});
}
google.maps.event.addDomListener(window, 'load', initialize);
我在想我可以添加一个监听器,例如:
google.maps.event.addListener(polygon, 'click', function (event) {
//Find the polygon's website URL
});
并使用它来触发页面重定向,例如
window.location.replace(...)
或多或少地使多边形成为一个巨大的链接,但我被建议不要这样做。
答案 0 :(得分:1)
FusionTableLayer有一个FusionTablesMouseEvent,其row
属性中包含该行该行的所有信息:
行|宾语。 | FusionTablesCell对象的集合,按列名索引,表示包含所单击特征的表行的内容。)
像这样使用它(确切的代码取决于您尚未共享的表格):
layer_1 = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query: {
select: "col0",
from: "/*Fustion Table ID*/",
},
map: map,
styleId: 2,
templateId: 2
});
google.maps.event.addListener(layer_1, 'click', function(evt) {
// code to open the URL based on the data in that row of your fusion table
});
答案 1 :(得分:0)
这是我最终使用的代码,以防任何人寻找类似的东西:
var map;
var layer_1;
function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(33.205, -97.1325),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layer_1 = new google.maps.FusionTablesLayer({
suppressInfoWindows: true,
query: {
select: "col0",
from: "*** Fusion Table Idea goes here ***",
},
map: map,
styleId: 2,
templateId: 2
});
google.maps.event.addListener(layer_1, 'click', function(evt) {
var url = evt.row.website.value;
console.log(url);
window.location = url;
});
}
google.maps.event.addDomListener(window, 'load', initialize);