工具
目錄
- 1 地圖工具概述
- 2 向地圖添加工具
- 3 通過按鈕控制工具的開啟和關(guān)閉
- 4 拉框放大工具
地圖工具概述
提示:工具已經(jīng)制作成開源庫(lib)對外免費開放,可直接訪問 JavaScript 開源庫。若您需要運行以下示例代碼,請先確認(rèn)已在開發(fā)工程中引入lib文件,具體引用方法可查看 JavaScript 開源庫提供的示例源文件。注意,開源庫必須與百度地圖JS API同時使用。
百度地圖提供了交互功能更為復(fù)雜的“工具”,它包括:
MarkerTool:標(biāo)注工具。通過此工具用戶可在地圖任意區(qū)域添加標(biāo)注。
MarkerClusterer:多標(biāo)注聚合器。此工具解決加載大量點要素到地圖上造成緩慢,且產(chǎn)生覆蓋現(xiàn)象的問題。
MarkerManager:標(biāo)注管理工具。此工具提供展示、隱藏、清除所有標(biāo)注。
RichMarker:富標(biāo)注工具。此工具為用戶提供自定義Marker樣式,并添加點擊、雙擊、拖拽等事件。
DistanceTool:測距工具。通過此工具用戶可測量地圖上任意位置之間的距離。
RectangleZoom:區(qū)域縮放工具。此工具將根據(jù)用戶拖拽繪制的矩形區(qū)域大小對地圖進(jìn)行放大或縮小操作。
MapWrapper:地圖搬家工具。此工具提供了將Google或GPS坐標(biāo)形式的Marker添加到百度地圖上的功能。
InfoBox:自定義信息窗口工具。類似于infoWindow,比infoWindow更有靈活性,比如可以定制border,關(guān)閉按鈕樣式等。
LuShu:路書,軌跡運動工具。此工具用以實現(xiàn)marker沿路線運動,并有暫停等功能。
CityList:城市列表工具。此工具為用戶直接生成城市列表,并且自帶選擇城市操作。
AreaRestriction:區(qū)域限制工具。此工具為用戶提供百度地圖瀏覽區(qū)域限制設(shè)置。
GeoUtils:幾何運算工具。此工具提供判斷點與矩形、 圓形、多邊形線、多邊形面的關(guān)系,并提供計算折線長度和多邊形的面積的公式。
TrafficControl:實時交通控件。此工具提供將交通流量圖層在地圖上的實時顯示,隱藏等。
SearchControl:檢索控件。此工具針對移動端,提供城市列表選擇、本地檢索框、公交駕車查詢框。并提供相應(yīng)功能。
DrawingManager:鼠標(biāo)繪制工具。通過此工具用戶可以在地圖任意位置上畫點、畫線、畫面并顯示線的距離及面的面積。
EventWrapper:事件封裝工具。該工具提供了更人性化的事件使用方法。
TextIconOverlay:自定義覆蓋物工具。用戶可以使用該工具在地圖上添加文字和圖標(biāo)樣式的覆蓋物。
SearchInRectangle:拉框縮放工具,用于實現(xiàn)三種拉框搜索效果。
SearchInfoWindow:“百度地圖樣式”的信息窗口工具。該工具為用戶提供帶搜索框的信息窗口,該窗口內(nèi)容可自由定制多種風(fēng)格。同時,用戶可以將信息窗口標(biāo)題以短信方式發(fā)送到手機上。
工具類在初始化時需要提供地圖實例參數(shù),以便使工具在該地圖上生效。您可以在地圖上添加多個工具,但同一時刻只能有一個工具處于開啟狀態(tài)。標(biāo)注工具和測距工具在完成一次操作后將自動退出開啟狀態(tài),而區(qū)域縮放工具可以自行配置是否自動關(guān)閉。
向地圖添加工具
在地圖正確初始化后,您可以創(chuàng)建工具實例。下面示例展示了如何向地圖添加一個標(biāo)注工具。
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); var myPushpin = new BMap.PushpinTool(map); // 創(chuàng)建標(biāo)注工具實例 myPushpin.addEventListener("markend", function(e){ // 監(jiān)聽事件,提示標(biāo)注點坐標(biāo)信息 alert("您標(biāo)注的位置:" + e.marker.getPoint().lng + ", " + e.marker.getPoint().lat); }); myPushpin.open(); // 開啟標(biāo)注工具
通過按鈕控制工具的開啟和關(guān)閉
工具類沒有提供控制其開啟和關(guān)閉的UI元素。您可以根據(jù)需要自己創(chuàng)建這些元素,把它們放置在地圖區(qū)域內(nèi)或者區(qū)域外均可。調(diào)用工具類的open和close可控制工具的開啟和關(guān)閉。
首先初始化地圖并創(chuàng)建一個測距工具實例:
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); var myDis = new BMapLib.DistanceTool(map);
接著我們創(chuàng)建兩個按鈕元素并為其添加點擊事件。
- <input type="button" value="開啟" onclick="myDis.open()" />
- <input type="button" value="關(guān)閉" onclick="myDis.close()" />
拉框放大工具
一些工具類提供了可修改的配置參數(shù),您可參考API文檔來修改它們以便符合您的要求。
本示例為區(qū)域縮放工具添加提示文字。
var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 15); var myDrag = new BMapLib.DragAndZoomTool(map, { followText : "拖拽鼠標(biāo)進(jìn)行操作" });