感谢所有帮助我学习至今的人!
我必须根据客户端反馈更改以前的映射,现在我正在尝试重新创建以下API v3示例:@geocodezip中的融合表层示例:
sidebar.html
我仔细地复制、粘贴并将原始代码更改到我的页面中,但是我遇到了以下问题:
a.)infoWindows没有被抑制,新的也没有被创建;
b.)单击侧栏中的项对地图没有影响。
我的猜测是,这与新的查询语法和加密ID有关,而示例代码(非洲地图)则基于数字ID。我想我搞砸了。
,我的问题是:如何更改/更新我的代码,使我的地图功能像非洲地图的例子?谢谢!
My地图: http://hepac.ca/map/
我的融合表: https://www.google.com/fusiontables/data?docid=1DxjRqzjtC7-Oryt8N9ZaJ0n1IXRllDjodnbEJYo
我认为有关的守则是:
function createSidebar() {
// https://www.google.com/fusiontables/api/query?sql=SELECT%20ROWID,%20%2A%20FROM%20564705
//set the query using the parameter
var queryText = encodeURIComponent("http://www.google.com/fusiontables/gvizdata?tq=SELECT * FROM 1DxjRqzjtC7-Oryt8N9ZaJ0n1IXRllDjodnbEJYo");
var query = new google.visualization.Query(queryText);
var queryText = encodeURIComponent("SELECT 'Description', 'Network', 'Contact', 'Email', 'Latitude', 'Longitude' FROM 1DxjRqzjtC7-Oryt8N9ZaJ0n1IXRllDjodnbEJYo");
var query = new google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq=' + queryText);
//set the callback function
query.send(getData);
}和:
layer = new google.maps.FusionTablesLayer({
query: {
select: "col2",
from: "1DxjRqzjtC7-Oryt8N9ZaJ0n1IXRllDjodnbEJYo",
where: ""
},
suppressInfoWindows: true
});
layer.setMap(map);发布于 2013-08-27 15:55:16
infoWindows正在被压制。在您的代码中有一个“单击”监听器,使它们显示出来:
google.maps.event.addListener(layer, "click", function(event) {
infoWindow.close();
infoWindow.setContent(event.infoWindowHtml);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});发布于 2013-08-27 16:48:28
我的Javascript错误似乎与我从融合表中调用的列数有关。完成了这些修补程序,并且工作正常:
var queryText = encodeURIComponent("SELECT 'Description', 'Network', 'Contact', 'Website', 'Email', 'Latitude', 'Longitude' FROM 1DxjRqzjtC7-Oryt8N9ZaJ0n1IXRllDjodnbEJYo");然后,以后:
function myFTclick(row) {
var Description = FTresponse.getDataTable().getValue(row,0);
var Network = FTresponse.getDataTable().getValue(row,1);
var Contact = FTresponse.getDataTable().getValue(row,3);
var Email = FTresponse.getDataTable().getValue(row,4);
var lat = FTresponse.getDataTable().getValue(row,5);
var lng = FTresponse.getDataTable().getValue(row,6);
var position = new google.maps.LatLng(lat, lng);我可以通过使用列值来运行它--例如,.getValue(行,x) --尽管我不知道如何为“x”找到正确的数值。我做这件事是经过反复试验的。
https://stackoverflow.com/questions/18467660
复制相似问题