我有一个ImageMapType,它覆盖了Google Map(v3 API)。这是我的Web应用程序的默认视图,用户可以决定按下按钮隐藏叠加层。
我可以避免加载Google地图图块,直到显示叠加层吗?
我在文档中看到有一个名为 mapTypeId 的参数可以设置为特定值,但似乎不可能像:mapTypeId:NULL
谢谢, 的Riccardo
答案 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');