Javascript 融合表和地图w/侧栏:非洲地图样本中从数字到加密的ID
感谢所有帮助我学习的人 我不得不根据客户反馈更改以前的映射,现在我正尝试重新创建以下API v3示例:来自@geocodezip的Fusion Tables Layer示例: 我已经仔细地将原始代码复制、粘贴并更改到我的页面中,但我遇到了以下问题: a。信息窗口不会被抑制,也不会创建新窗口 b。单击侧边栏中的项目对地图没有影响 我猜想这与新的查询语法和加密的ID有关,而非洲地图的示例代码是基于数字ID的。我想我搞砸了 我的问题是:如何更改/更新代码,使我的地图功能与非洲地图示例类似?谢谢大家! 我的地图: 我的融合表: 我认为是相关代码:Javascript 融合表和地图w/侧栏:非洲地图样本中从数字到加密的ID,javascript,google-maps-api-3,google-fusion-tables,sidebar,Javascript,Google Maps Api 3,Google Fusion Tables,Sidebar,感谢所有帮助我学习的人 我不得不根据客户反馈更改以前的映射,现在我正尝试重新创建以下API v3示例:来自@geocodezip的Fusion Tables Layer示例: 我已经仔细地将原始代码复制、粘贴并更改到我的页面中,但我遇到了以下问题: a。信息窗口不会被抑制,也不会创建新窗口 b。单击侧边栏中的项目对地图没有影响 我猜想这与新的查询语法和加密的ID有关,而非洲地图的示例代码是基于数字ID的。我想我搞砸了 我的问题是:如何更改/更新代码,使我的地图功能与非洲地图示例类似?谢谢大家!
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);
}
以及:
信息窗口正在被抑制。您的代码中有一个“单击”侦听器,可使其显示:
google.maps.event.addListener(layer, "click", function(event) {
infoWindow.close();
infoWindow.setContent(event.infoWindowHtml);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});
我的Javascript错误似乎与我从Fusion表中调用的列数有关。进行了这些修复,并且工作正常:
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);
我可以通过使用列值来运行它-例如,getValuerow,x-尽管我不知道如何找到x的正确数值。我是通过反复试验来完成的。首先修复javascript错误:警告:您已多次在此页面上包含Google Maps API。这可能会导致意外错误。main.js:90.Uncaught错误:列索引6无效。应为[0-5]范围内的整数。format+en,默认值,geomap,table,corechart.I.js:60OK,在上面。将更新。@geocodezip:您使用哪个工具处理javascript错误?我正在尝试JSlint。在Chrome、Firefox或IE中使用javascript控制台,具体取决于我的位置和测试内容。谢谢!一些尝试和错误修复了它,我让边栏工作!惊人。列号由查询变量queryText=encodeuricomponent从1DxjRqzjtC7-Oryt8N9ZaJ0n1IXRllDjodnbEJYo中选择“描述”、“网络”、“联系人”、“网站”、“电子邮件”、“纬度”、“经度”定义;,第0列是说明,第1列是网络,当然等等!:再次感谢。我试图把它从原始的融合表中找回来。
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);