Javascript 谷歌地图从fusiontable获取kml并显示它们

Javascript 谷歌地图从fusiontable获取kml并显示它们,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我想为荷兰建造一些类似的东西。我有省份的名称,你点击其中一个,它应该会显示它的边界,所以设置正确的边界。这是我的密码: var FT_TableID = "19lLpgsKdJRHL2O4fNmJ406ri9JtpIIk8a-AchA"; var CountryName = "Netherlands"; google.load('visualization', '1', { 'packages': ['corechart', 'table', 'geo

我想为荷兰建造一些类似的东西。我有省份的名称,你点击其中一个,它应该会显示它的边界,所以设置正确的边界。这是我的密码:

var FT_TableID = "19lLpgsKdJRHL2O4fNmJ406ri9JtpIIk8a-AchA";
var CountryName = "Netherlands";
google.load('visualization', '1', {
  'packages': ['corechart', 'table', 'geomap']
});
jQuery(document).ready(function() {
  var mapProp = {
    center: new google.maps.LatLng(52.24730, 5.36449),
    zoom: 7,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);

  jQuery("span").click(function() {
    var name = jQuery(this).text();
    //map.fitBounds(gpolygons[id].bounds);
    var queryStr = {
      select: 'kml_4326',
      from: FT_TableID,
      where: "'name_0' = '" + CountryName + "' AND 'name_1' = '" + name + "'"
    };
    var query = new google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq=' + queryStr);
    var FT_Options = {
      suppressInfoWindows: true,
      query: query
    };
    layer = new google.maps.FusionTablesLayer(FT_TableID, FT_Options);
    layer.setMap(map);
  });

});
codepen上还有一个工作示例:

我的问题:它显示查看端口中所有内容的边界和kml数据,而不仅仅是所选省份。问题出在哪里了?我还希望像geocodezip的示例一样,将视图端口设置为所选的省。为此,我需要boundsdata并将其设置为bounds.extend和map.fitBoundsbounds。但是我从哪里可以获得这些数据呢?

您的语法没有达到预期的效果,因为您使用了错误的语法-旧语法,而不是语法。旧语法不适用于加密的ID。如果查询语法不正确,但您给它一个有效的表,它将显示所有数据

旧语法:

layer = new google.maps.FusionTablesLayer(FT_TableID, FT_Options);
这是当前记录的语法:

var FT_Options = {
  suppressInfoWindows: true,
  query: {
    select: 'kml_4326',
    from: FT_TableID,
    where: "'name_0' = '" + CountryName + "'"
  },
  styles: [{
    polygonOptions: {
      strokeColor: "#FF0000",
      strokeWeight: 3
    }
  }]
};
layer = new google.maps.FusionTablesLayer(FT_Options);
您的省查询也有问题您的省名称拼写错误或至少与表中的名称不同,因此查询与任何行都不匹配

代码段:

var FT_TableID=19lLpgsKdJRHL2O4fNmJ406ri9JtpIIk8a AchA; var CountryName=荷兰; google.load'visualization'、'1'{ “包”:[“corechart”、“table”、“geomap”] }; jQuerydocument.readyfunction{ var mapProp={ 中心:新google.maps.LatLng52.24730,5.36449, 缩放:7, mapTypeId:google.maps.mapTypeId.ROADMAP }; var map=new google.maps.Mapdocument.getElementByIdgoogleMap,mapProp; 变量queryStr={ 选择:“kml_4326”, 发件人:FT_TableID, 其中:'name_0'='+CountryName+' }; var FT_选项={ suppressInfoWindows:对, 查询:queryStr, 风格:[{ 多克隆选择:{ strokeColor:FF0000, 冲程重量:3 } }] }; layer=新的google.maps.FusionTablesLayerFT\u选项; layer.setMapmap; jQueryspan.clickfunction{ var name=jQuerythis.text; 变量queryStr={ 选择:“kml_4326”, 发件人:FT_TableID, 其中:'name_0'='+CountryName+'和'name_1'='+name+' }; var FT_选项={ 查询:queryStr, 风格:[{ 多克隆选择:{ strokeColor:FF0000, 冲程重量:3 } }] }; layer.setoptions英尺选项; }; }; html, 身体 谷歌地图{ 身高:100%; 宽度:100%; 边际:0px; 填充:0px } 泽兰 德伦特