叠层地图类型
某些地图类型设计为在现有地图类型上使用。此类地图类型可能具有透明图层,以指示兴趣点或向用户显示其他
数据。(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');