0

チェックボックスでのユーザーの選択に基づいて、複数のKMLレイヤー(すべて同じFusionテーブル内に保存されている)をGoogleマップに表示しようとしています。マップとチェックボックスは表示されていますが、KMLレイヤーは表示されていません(通常、マップウィンドウ全体にタイル状の「データがまだ読み込まれている可能性があります」という応答が表示されます)。私はグーグルフュージョンテーブルの例(IN:ピザショップ)のコーディングに基づいています。

私はhtmlとjavaにかなり慣れていないので、スクリプトでエラーを見つけることができなかったとしても、このような他の「ヘルプ」ページとの明白な違いは、どこかにエラーがないことを意味しません。

レイヤータイプごとに、これらをたくさん書きました。

google.maps.event.addDomListener(document.getElementBId('trail'),
        '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: 'geometry',
                    from: tableId,
                    where: where
                }
            });
        } else {
            layer.setMap(null);
        }
    }

    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 =  "'descripion' IN (" + filter.join(',') + ')';
        }
        return where;
    }

    google.maps.event.addDomListener(window, 'load', initialize);

そして、div本体のこれらの人:

<input type="checkbox" checked="checked" name="store"
            id="trail" value="trail">
        <label>trail</label>
        <input type="checkbox" checked="checked" name="store"
            id="Historic" value="Historic">
        <label>Historic</label>
        <input type="checkbox" checked="checked" name="store"
            id="Energy" value="Energy">
        <label>Energy</label>
        <input type="checkbox" checked="checked" name="store"
            id="Hunting/Fishing" value="Hunting/Fishing">
        <label>Hunting/Fishing</label>

私のFusionテーブルは次のとおりです:https ://www.google.com/fusiontables/DataSource?docid = 1J8YjRYnWprhLdL0YMP6lxxb_encjkowSlqi1G3Y#rows:id = 1

4

1 に答える 1

0

タイプミスがあります:

    where = "'説明' IN (" + filter.join (',') + ')';
    //----------------^

コードに t がありません

于 2013-01-26T19:00:25.390 に答える