仅显示没有Google地图的叠加地图

时间:2014-08-21 15:39:50

标签: google-maps google-maps-api-3

我有一个ImageMapType,它覆盖了Google Map(v3 API)。这是我的Web应用程序的默认视图,用户可以决定按下按钮隐藏叠加层。

我可以避免加载Google地图图块,直到显示叠加层吗?

我在文档中看到有一个名为 mapTypeId 的参数可以设置为特定值,但似乎不可能像:mapTypeId:NULL

谢谢,    的Riccardo

2 个答案:

答案 0 :(得分:0)

我发现此文档页面具有启发性:https://developers.google.com/maps/documentation/javascript/examples/maptype-image

首先,我原谅要为我的ImageMapType选项分配最大和最小缩放级别,这是最终的配置:

var myMap = new google.maps.ImageMapType({
    getTileUrl : function(coord, zoom) { /* ... */},
    tileSize : new google.maps.Size(256, 256),
    isPng : true,
    opacity : 1,
    name: 'torino1864',
    minZoom : MAP_MIN_ZOOM,
    maxZoom : MAP_MAX_ZOOM
});

然后我需要实例化地图对象(像往常一样):

map = new google.maps.Map(document.getElementById('map_canvas_placesList1864'), {
    center : MAP_INITIAL_CENTER,
    zoom : 11,
    minZoom : MAP_MIN_ZOOM,
    maxZoom : MAP_MAX_ZOOM,
    backgroundColor : '#000000',
    draggable : true,
    panControl : false,
    streetViewControl : false,
    zoomControl : true,
    mapTypeControl : false
});

然后(我缺少的部分)自定义地图必须注册为mapType,并且必须设置新的mapType:

map.mapTypes.set('torino1864', mapTiler);
map.setMapTypeId('torino1864');

答案 1 :(得分:0)

我简化了一下:

var mapTiler = new google.maps.ImageMapType({
    getTileUrl : function(coord, zoom) { return "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";},
    tileSize : new google.maps.Size(256, 256),
    name: 'blankTiles',
    minZoom : 0,
    maxZoom : 20
});

var map = new google.maps.Map(document.getElementById('map-canvas'), {
    zoom: 10,
});

map.mapTypes.set('blankTiles', mapTiler);
map.setMapTypeId('blankTiles');