我有一个包含国家名称及其相应地理数据的 Google Fusion 表。我有一个站点需要获取一组国家/地区名称并将它们IN('foo', 'bar', 'baz')
作为我为向我的谷歌地图添加图层而设置的字符串的一部分放入 SQL 中。
这是一个有效的代码示例:
var layer = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: '1vnD6W9q3VWvV3UFaza8I8UwSSWv5k6kemDjNYLo',
where: 'CNTRYNAME IN(\'Tanzania\', \'Angola\')'
},
styles: [{
polygonOptions: {
fillColor: "#D77D00",
fillOpacity: 0.4
},
markerOptions: {
iconName: 'open_diamond'
},
}],
});
layer.setMap(map);
您会注意到查询字符串需要\
SQL 用于IN
值的数组。我完全被困在如何从需要进入的值数组中构造一个字符串。
这是我尝试过的:
var str = 'CNTRYNAME IN(';
for (var i = 0; i < countries.length; i++) {
str += '\\\'' + countries[i] + '\\\'';
}
str += ')';
在这种情况下,查询不再正常工作。有任何想法吗?