0

我正在尝试根据用户通过复选框的选择在谷歌地图上显示多个 KML 图层(全部存储在同一个 Fusion 表中)。地图和复选框已经出现,但 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>

我的融合表是: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 回答