下面通過圖文并茂的方式給大家詳細介紹下比例尺、縮略圖、平移縮放之百度地圖添加控件方法。
地圖控件概述
百度地圖上負責與地圖交互的UI元素稱為控件。百度地圖API中提供了豐富的控件,您還可以通過Control類來實現自定義控件。
地圖API中提供的控件有:
Control:控件的抽象基類,所有控件均繼承此類的方法、屬性。通過此類您可實現自定義控件。
NavigationControl:地圖平移縮放控件,PC端默認位于地圖左上方,它包含控制地圖的平移和縮放的功能。移動端提供縮放控件,默認位于地圖右下方。
OverviewMapControl:縮略地圖控件,默認位于地圖右下方,是一個可折疊的縮略地圖。
ScaleControl:比例尺控件,默認位于地圖左下方,顯示地圖的比例關系。
MapTypeControl:地圖類型控件,默認位于地圖右上方。
CopyrightControl:版權控件,默認位于地圖左下方。
GeolocationControl:定位控件,針對移動端開發,默認位于地圖左下方
向地圖添加控件
可以使用Map.addControl()方法向地圖添加控件。在此之前地圖需要進行初始化。例如,要將標準地圖控件添加到地圖中,可在代碼中添加如下內容:
可以向地圖添加多個控件。在本例中我們向地圖添加一個平移縮放控件、一個比例尺控件和一個縮略圖控件。在地圖中添加控件后,它們即刻生效。
控制控件位置
初始化控件時,可提供一個可選參數,其中的anchor和offset屬性共同控制控件在地圖上的位置。
控件??课恢?anchor表示控件的??课恢?,即控件??吭诘貓D的哪個角。當地圖尺寸發生變化時,控件會根據停靠位置的不同來調整自己的位置。anchor允許的值為:
BMAP_ANCHOR_TOP_LEFT 表示控件定位于地圖的左上角。
BMAP_ANCHOR_TOP_RIGHT 表示控件定位于地圖的右上角。
BMAP_ANCHOR_BOTTOM_LEFT 表示控件定位于地圖的左下角。
BMAP_ANCHOR_BOTTOM_RIGHT 表示控件定位于地圖的右下角。

控件位置偏移
除了指定停靠位置外,還可以通過偏移量來指示控件距離地圖邊界有多少像素。如果兩個控件的??课恢孟嗤?,那么控件可能會重疊在一起,這時就可以通過偏移值使二者分開顯示。
本示例將比例尺放置在地圖的左下角,由于API默認會有版權信息,因此需要添加一些偏移值以防止控件重疊。
修改控件配置
地圖API的控件提供了豐富的配置參數,您可參考API文檔來修改它們以便得到符合要求的控件外觀。例如,NavigationControl控件就提供了如下類型:

上圖前4個為PC端平移縮放控件樣式,最后一個為移動端縮放控件樣式。
下面的示例將調整平移縮放地圖控件的外觀。
上圖前4個為PC端平移縮放控件樣式,最后一個為移動端縮放控件樣式。
下面的示例將調整平移縮放地圖控件的外觀。
添加縮略圖
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html {width: 100%;height: 100%;margin:0;font-family:"微軟雅黑";} #allmap{width:100%;height:500px;} #r-result{width:100%;margin-top:5px;} p{margin:5px; font-size:14px;} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密鑰"></script> <title>添加/刪除地圖類型、縮略圖控件</title></head><body> <div id="allmap"></div> <div id="r-result"> <input type="button" onclick="add_control();" value="添加" /> <input type="button" onclick="delete_control();" value="刪除" /> </div> <p>點擊地圖類型控件切換普通地圖、衛星圖、三維圖、混合圖(衛星圖+路網),右下角是縮略圖,點擊按鈕查看效果</p></body></html><script type="text/javascript"> // 百度地圖API功能 var map = new BMap.Map("allmap"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var mapType1 = new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]}); var mapType2 = new BMap.MapTypeControl({anchor: BMAP_ANCHOR_TOP_LEFT}); var overView = new BMap.OverviewMapControl(); var overViewOpen = new BMap.OverviewMapControl({isOpen:true, anchor: BMAP_ANCHOR_BOTTOM_RIGHT}); //添加地圖類型和縮略圖 function add_control(){ map.addControl(mapType1); //2D圖,衛星圖 map.addControl(mapType2); //左上角,默認地圖控件 map.setCurrentCity("北京"); //由于有3D圖,需要設置城市哦 map.addControl(overView); //添加默認縮略地圖控件 map.addControl(overViewOpen); //右下角,打開 } //移除地圖類型和縮略圖 function delete_control(){ map.removeControl(mapType1); //移除2D圖,衛星圖 map.removeControl(mapType2); map.removeControl(overView); map.removeControl(overViewOpen); }</script>效果圖

以上就是本文的全部內容,希望大家喜歡。
新聞熱點
疑難解答