控件可用位置:
大多數控件選項都包含 position
屬性,該屬性用于指明要在地圖上放置相應
控件的位置。這些控件的定位并不是絕對的;相反,API 將通過使控件在給定約束(例如地圖尺寸)內圍繞現
有地圖元素或其他控件“流動”,以智能方式安排控件布局。
· TOP_CENTER
:表示控件應沿著地圖頂部中心放置
· TOP_LEFT
:表示控件應沿著地圖左上角放置,控件的所有子元素“流”向頂部中心
· TOP_RIGHT
:表示控件應沿著地圖右上角放置,控件的所有子元素“流”向頂部中心
· LEFT_TOP
:表示控件應沿著地圖左上角放置,但應位于任何 TOP_LEFT
元素下方
· RIGHT_TOP
:表示控件應沿著地圖右上角放置,但應位于任何 TOP_RIGHT
元素下方
· LEFT_CENTER
:表示控件應沿著地圖左側放置在 TOP_LEFT
和 BOTTOM_LEFT
之間的中心位置
· RIGHT_CENTER
:表示控件應沿著地圖右側放置在 TOP_RIGHT
和 BOTTOM_RIGHT
之間的中心位置
· LEFT_BOTTOM
:表示控件應沿著地圖左下角放置,但應位于任何 BOTTOM_LEFT
元素上方
· RIGHT_BOTTOM
:表示控件應沿著地圖右下角放置,但應位于任何 BOTTOM_RIGHT
元素上方
· BOTTOM_CENTER
:表示控件應沿著地圖底部中心放置
· BOTTOM_LEFT
:表示控件應沿著地圖左下角放置,控件的所有子元素“流”向底部中心
· BOTTOM_RIGHT
:表示控件應沿著地圖右下角放置,控件的所有子元素“流”向底部中心
控件選項
有些控件是除了位置可以配置的,還允許您更改它們的行為或外觀。例如,地圖類型控件可以水平欄或下拉菜單形式顯示。
地圖類型控件可接受如下控件:
· google.maps.MapTypeControlStyle.HORIZONTAL_BAR
:用于在水平欄中將一組控件顯示為如 Google 地圖中所示的按鈕
· google.maps.MapTypeControlStyle.DROPDOWN_MENU
:用于顯示單個按鈕控件,以便您通過下拉菜單選擇地圖類型
· google.maps.MapTypeControlStyle.DEFAULT
:用于顯示默認行為,該行為取決于屏幕大小且可能會在以后的 API 版本中有所變化
您可以在創建地圖時,通過地圖的 MapOptions
對象中的字段來指定控件的顯示效果。這些字段描述如下:
· zoomControl
:用于啟用/禁用縮放控件。默認情況下,此控件可見并顯示在地圖右下角。zoomControlOptions
字段用于進一步指定要用于此控件的 ZoomControlOptions
· mapTypeControl
:用于啟用/禁用地圖類型控件,該控件可讓用戶在不同的地圖類型(例如“地圖”和“衛星”)之間進行切換。默認情況下,此控件可見并顯示在地圖左上角。mapTypeControlOptions
字段用于進一步指定要用于此控件的 MapTypeControlOptions
· streetViewControl
:用于啟用/禁用街景小人控件,該控件可讓用戶激活 Street View 全景圖。默認情況下,此控件可見并顯示在地圖右下角。streetViewControlOptions
字段用于進一步指定要用于此控件的StreetViewControlOptions
· scaleControl
:用于啟用/禁用比例控件,該控件可提供一個簡單的地圖比例尺。默認情況下,此控件不可見。啟用后,它將始終顯示在地圖右下角。scaleControlOptions
用于進一步指定要用于此控件的ScaleControlOptions
代碼示例:
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";
//這里使用谷歌在線的數據,當然您也可以使用Bigemap地圖下載器下載的離線瓦片作為此處的地址
var strURL = 'http://mt0.google.cn/vt/lyrs=m@365000000&hl=zh-CN&gl=cn&x=' + coord.x + '&y=' + coord.y + '&z=' + zoom + '&s=Galil';
img.src = strURL;
return img;
};
var google_map = new BigeMap();
var offline_map=new BigeMap();
offline_map.name='離線地圖';
offline_map.getTile=function (coord,zoom,ownerDocument) {
var img = ownerDocument.createElement("img");
img.style.width = this.tileSize.width + "px";
img.style.height = this.tileSize.height + "px";
//這里使用Bigemap地圖下載器下載的離線瓦片作為此處的地址
var strURL = './tiles/' + coord.x + '/' + coord.y + '/' + zoom+'.png';
img.src = strURL;
return img;
};
var myOptions = {
//設置中心點
center: new google.maps.LatLng(30.54024807, 104.06966686),
//默認顯示級別
zoom: 4,
zoomControl: true,//縮放控件
zoomControlOptions:{
//益在左下角
position:google.maps.ControlPosition.LEFT_BOTTOM
},
mapTypeControl: true,//地圖類型控件
scaleControl: true, //比例控件
streetViewControl: false, //是否顯示街景 因為大部分是離線,所以不需要顯示
mapTypeControlOptions: {
mapTypeIds: ['google_map','google_offline'],
//位置在右上角
position:google.maps.ControlPosition.TOP_RIGHT,
//樣式為下拉樣式
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
}
};
//初始化map對象
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//向map對象中添加離線地圖
map.mapTypes.set('google_offline',offline_map);
//向map對象中添加在線地圖
map.mapTypes.set('google_map', google_map);
//設置map對象默認顯示 google 在地圖
map.setMapTypeId('google_map');