1

我有一个带有一些叠加层的谷歌地图,当缩放高于某个值(比如 17)时,叠加层完全覆盖了地图。

我想防止地图图块加载超出该缩放级别,因为它位于叠加层后面,并且会导致不必要的数据传输。是否可以?

编辑:

我需要类似的东西:

google.maps.event.addListener(map, 'zoom_changed', function() { 
    if(map.getZoom()>=zoomToHideMap)
        stopLoadingTiles();
    else
        startLoadingTiles();
}); 

谢谢

4

3 回答 3

1

我的解决方案是在 onzoomchanged 事件上将 Map Type 更改为 null。

google.maps.event.addListener(map, 'onzoomchanged', function() {
    if(closeEnough)
        map.setMapTypeId(null)
    else
        map.setMapTypeId(google.maps.MapTypeId.SATELLITE)
})

由于覆盖层完全覆盖了地图,我将其用作基础层而不是覆盖层以进行一定程度的缩放。

于 2012-11-30T02:57:08.703 回答
0

如果您使用OpenLayers,您可以更好地控制地图的行为。您仍然可以使用 Google 的地图图像:

于 2012-11-08T00:15:49.283 回答
0

不是来自我,但很有趣:

    
        
        
            html,正文 { 高度:100%;}
            #map_canvas { 高度:1000px;}
        
    
    
        
        
        
            变量选项 =
            {
                getTileUrl:函数(坐标,缩放)
                {
                    // 不要为重复的地图加载瓦片
                    var tileRange = 1 = tileRange || coord.x = tileRange )
                        返回空值;

                    // 加载请求坐标的图块
                    var 文件 = '图像/缩放' + 缩放 + '/tile_' + 缩放 + '_' + (coord.x) + '_' + (coord.y) + '.jpg';

                    返回文件;
                },
                tileSize: 新的 google.maps.Size(256, 256),
                最小缩放:1,
                最大缩放:9,
                radius: 1738000, // 我是从 api 中的一个示例中得到的,我不知道这是做什么的
                名称:'地图',
            };
            var mapOptions =
            {
                中心:新的 google.maps.LatLng(0,0),
                缩放:2,
                背景颜色:'#000',
                街景控制:假,
                地图类型控制:假
            };

            var map = new google.maps.Map(document.getElementById('map_canvas'),mapOptions);
            var mapType = new google.maps.ImageMapType(options);
            map.mapTypes.set('map', mapType);
            map.setMapTypeId('地图');

            var 标记 = 新的 google.maps.Marker({
                    位置:新的 google.maps.LatLng(0,0),
                    地图:地图,
                    作品名称:《测试》
            });
            
    

于 2012-11-08T00:18:02.133 回答