某些地圖類型設計為在現有地圖類型上使用。此類地圖類型可能具有透明圖層,以指示興趣點或向用戶顯示其他
數據。(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');