国名とそれに対応する地理データでいっぱいのGoogleFusionテーブルがあります。国名の配列を取得IN('foo', 'bar', 'baz')
し、Googleマップにレイヤーを追加するために設定した文字列の一部として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 += ')';
この場合、クエリは正しく機能しなくなりました。何か案は?