如何重新加载谷歌地图图层

How to reload Google maps layer?

本文关键字:图层 谷歌地图 加载 何重新      更新时间:2023-09-26

我想在用户更改缩放级别时重新加载融合表图层。可以看出,我试过了,但无法使其工作。

var map;
var layerl0;
    function initialize() {
    map=new google.maps.Map(document.getElementById('map_canvas'),{
        center: new google.maps.LatLng(MyLat,MyLng),
            zoom:4,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        layerl0 = new google.maps.FusionTablesLayer({
                    query: {
                        select: "'ColumnHeader'",
                        from: 'MyEncryptedId'
                },
                map: map
        });
        /* refresh after zooming */
        google.maps.event.addListener(map, 'zoom_changed', function() {
                layerl0.refresh();
    });
    }
google.maps.event.addDomListener(window, 'load', initialize);

FusionTablesLayer 上没有 .refresh 方法

重新

运行查询或销毁并重新创建 FusionTablesLayer

这是解决方案。(我在这里找到的)

每 30 秒刷新一次图层:

var map;
var layerl0;
    function initialize() {
    map=new google.maps.Map(document.getElementById('map_canvas'),{
        center: new google.maps.LatLng(MyLat,MyLng),
        zoom: 4,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
    layerl0 = new google.maps.FusionTablesLayer({
        query: {
            select: "'ColumnHeader'",
            from: 'MyEncryptedId'
        },
    });
    layerl0.setMap(map);
    refreshMap();
}
function refreshMap(){
    layerl0.setOptions({
        query: {
        select: "'ColumnHeader'",
        from: 'MyEncryptedId',
            where: "location not equal to" + (-1 * Math.floor(Math.random() * 10000000)).toString()
        }
    }); 
    setTimeout('refreshMap()',30000);
}
google.maps.event.addDomListener(window, 'load', initialize);

感谢您回答@Rebecca和@geocodezip!

此示例代码旨在当用户更改缩放时交换不同的融合表图层。也许它会有所帮助:https://developers.google.com/fusiontables/docs/samples/change_query_per_zoom

-丽 贝卡