谷歌地图混合和空中瓷砖丢失

时间:2014-11-18 11:08:58

标签: google-maps-api-3 tiles missing-data

我正在使用谷歌地图API。我在使用Google基本地图时遇到了问题。当我加载Google混合或天线时,它会给我以下结果。

https://www.dropbox.com/s/u51hegt7hu03gz9/Untitled.png?dl=0

地图上缺少一些瓷砖。

缺少图块:https://www.dropbox.com/s/5vlp86xf4iote32/Untitled2.png?dl=0

我的代码是:



google.maps.event.addListener(mapA, 'maptypeid_changed', function () {
        var mapTypeId = mapA.getMapTypeId();
        if (mapTypeId != "basemap")
            mapTileSource = [];
        if (mapTypeId == google.maps.MapTypeId.HYBRID) {
            mapTileSource.push("http://khm1.google.com/kh/v=134&x={0}&y={1}&z={2}&s=Gal");
            mapTileSource.push("http://mt0.google.com/vt/lyrs=h@177290279&hl=en&x={0}&y={1}&z={2}&s=Gal");
        }
        else if (mapTypeId == google.maps.MapTypeId.ROADMAP) {
            mapTileSource.push("http://mt1.google.com/vt/lyrs=m@113&hl=hu&x={0}&y={1}&z={2}&s=Gal");
        }
        else if (mapTypeId == google.maps.MapTypeId.SATELLITE) {
            mapTileSource.push("http://khm1.google.com/kh/v=134&x={0}&y={1}&z={2}&s=Gal");
        }
        else if (mapTypeId == google.maps.MapTypeId.TERRAIN) {
            mapTileSource.push("http://mt1.google.com/vt/lyrs=t@131,r@176163100&hl=en&x={0}&y={1}&z={2}&s=Gal");
        }
    });




视图中缺少一些图块。

我试过这个:



    function CoordMapType(tileSize) {
        debugger;
        this.tileSize = tileSize;
    }
    CoordMapType.prototype.getTile = function (coord, zoom, ownerDocument) {
        var div = ownerDocument.createElement('div');
        div.innerHTML = coord;
        div.style.width = this.tileSize.width + 'px';
        div.style.height = this.tileSize.height + 'px';
        div.style.fontSize = '10';
        div.style.borderStyle = 'solid';
        div.style.borderWidth = '1px';
        div.style.borderColor = '#AAAAAA';
        return div;
    };
    mapA.overlayMapTypes.insertAt(0, new CoordMapType(new google.maps.Size(256, 256)));




我也试过这个:



 google.maps.event.addListenerOnce(mapA, 'tilesloaded', function() {
            google.maps.event.addListenerOnce(mapA, 'tilesloaded', function() {
                google.maps.event.trigger(mapA, 'resize');
            });
});




但他们不适合我。

有人可以告诉我加载地图上所有瓷砖的方法吗?

谢谢

2 个答案:

答案 0 :(得分:3)

尝试设置更高版本(m @或h @之后的数字等)并直接在web broswer中使用url(检查此版本中的tile是否存在)

http://mt1.google.com/vt/lyrs=m@901000000&hl=en&x=4&y=10&z=5&s=Ga

或检查您的缓存层(如果您使用)

我选择googleSatellite:

得到错误 - http://khm0.google.com/kh/v=149&hl=en&x=18&y=9&z=5&s=Galileo

******* 确定 - http://khm0.google.com/kh/v=165&hl=en&x=18&y=9&z=5&s=Galileo

答案 1 :(得分:1)

以下是使用Google地图混合卫星视图的地图框的工作示例:https://github.com/SnakeO/mapbox-with-google-maps-hybrid-tiles