谷歌离线地图 教程

地图的叠加

编辑时间:2017-03-02

叠层地图类型

某些地图类型设计为在现有地图类型上使用。此类地图类型可能具有透明图层,以指示兴趣点或向用户显示其他


数据。(Google 的交通层即属于此类地图类型。)

某些地图类型设计为在现有地图类型上使用。此类地图类型可能具有透明图层,以指示兴趣点或向用户显示其他

数据。(Google 的交通层即属于此类地图类型。)

在这些情况下,您不会希望将地图类型视为单独的实体。相反,您可以使用 Map 的 overlayMapTypes 属

性,将地图类型直接添加到现有 MapType 中。此属性包含 MapType 的 MVCArray。所有地图类型(基本和

叠层)一起渲染。叠层地图类型将按照在 Map.overlayMapTypes 数组中的出现顺序,显示在附加的任何基本地

图之上。


本实例将谷歌卫星地图实现叠加显示 :


var map;
//自定义地图
function BigeMap() {}
//地图下属瓦片大小
BigeMap.prototype.tileSize = new google.maps.Size(256, 256);
//地图最大级别
BigeMap.prototype.maxZoom = 19;
//地图最小级别
BigeMap.prototype.minZoom = 4;
//地图名称
BigeMap.prototype.name = "地图";
//此地图种类获取URL的地址
BigeMap.prototype.getTile = function (coord, zoom, ownerDocument) {
   
var img = ownerDocument.createElement("img");
   
img.style.width = this.tileSize.width + "px";
   
img.style.height = this.tileSize.height + "px";
   
var strURL = 'http://mt0.google.cn/vt/imgtp=png32&lyrs=h@365000000&hl=zh-CN&gl=cn&x=' + coord.x + '&y=' + coord.y + '&z=' + zoom + '&s=Galil';
   
img.src = strURL;
   
return img;
};
var google_map_traffic = new BigeMap();
var google_map=new google.maps.ImageMapType({
   
getTileUrl: function(coord, zoom) {
       
return 'http://mt2.google.cn/vt/lyrs=s@702&hl=zh-CN&gl=cn&x=' + coord.x + '&y=' + coord.y + '&z=' + zoom + '&s=Ga';
   
},
   
tileSize: new google.maps.Size(256, 256),
   
maxZoom: 19,
   
minZoom: 4,
   
name: 'Google'
});

var myOptions = {
   
//设置中心点
   
center: new google.maps.LatLng(30.54024807, 104.06966686),
   
//默认显示级别
   
zoom: 4,
   
streetViewControl:false,
   
mapTypeControlOptions: {
       
mapTypeIds: ['google_map']
   
}
}
;

//初始化map对象
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//map对象中添加一种地图
map.mapTypes.set('google', google_map);
//将交通图叠加
map.overlayMapTypes.insertAt(0,google_map_traffic);
//设置map对象默认显示 google 地图 也就是上面的google_map对象
map.setMapTypeId('google');