100 万 kml を使用するのではなく (10 かそこらで表示が停止する)、Fusion テーブルを取得し、チェックボックスを使用してさまざまなフィルターを切り替えようとしました。これは最初の 2 つのカテゴリではうまく機能しましたが、最初の 1 つまたは 2 つのカテゴリをクリックしてクリックしない限り、他のカテゴリは表示されません。明らかに何かがおかしい。Google の例 (IN、ピザ屋について) からコードを盗みましたが、これは拡張には機能しませんでした。また、拡大するサイドバーがありますが、これを制御するのに役立っていません。
私はこれらの束を作成しました:
google.maps.event.addDomListener(document.getElementById('Food Manufacturing/Wholesale'),
'click', function() {
filterMap(layer, tableId, map);
});
そして後でこれ:
function filterMap(layer, tableId, map) {
var where = generateWhere();
if (where) {
if (!layer.getMap()) {
layer.setMap(map);
}
layer.setOptions({
query: {
select: 'Longitude',
from: tableId,
where: where
}
});
} else {
layer.setMap(null);
}
}
// Generate a where clause from the checkboxes. If no boxes
// are checked, return an empty string.
function generateWhere() {
var filter = [];
var stores = document.getElementsByName('store');
for (var i = 0, store; store = stores[i]; i++) {
if (store.checked) {
var storeName = store.value.replace(/'/g, '\\\'');
filter.push("'" + storeName + "'");
}
}
var where = '';
if (filter.length) {
where = "'Displ_Type' IN (" + filter.join(',') + ')';
}
return where;
}
google.maps.event.addDomListener(window, 'load', initialize);
そして、これらは div ボディにあります:
<li><a1><input type="checkbox" name="store" id="cafe" value="Cafe">Cafe</a1></li>
<li><a1><input type="checkbox" name="store" id="Catering" value="Catering"> Catering</a1></li>
<li><a1><input type="checkbox" name="store" id="Cooking School" value="Cooking School"> Cooking School</a1></li>
また http://jsfiddle.net/pwhqq/1/
Fusion テーブルは次のとおりです: https://www.google.com/fusiontables/DataSource?snapid=S7955100ZHL