核心類Map
:畫地圖必須調用的var map = new BMap.Map("allmap");
其中allmap
是想要畫地圖的dom節點的id
。其中map
能夠控制整個地圖的縮放、移動、以及是否加入一些自定義的圖片,以及添加點擊事件等等操做都須要這個對象,map
是整個地圖的核心對象。html
定位的方式有瀏覽器自帶的方式Geolocation
,還有根據詳細地址或者經緯度來定位Geocoder
。api
Geolocation
:是調用了瀏覽器自帶的定位接口,若是瀏覽器不支持會返回null
Geocoder
:支持經緯度getLocation(point: Point, callback: Function, options: LocationOptions)
以及地址的方式getPoint(address: String, callback: Function, city: String)
經緯度的定位的座標是百度的座標,若是是其餘的經緯度能夠掉調用百度的逆地址解析成百度座標,可是這樣定位就會有誤差。瀏覽器
最好的方式是先根據經緯度定位(畫地圖),若是不許確,讓用戶本身輸入地址或者用戶本身操做地圖,來定位。其中地址定位是很準確的。調用Geocoder
定位的結果會返回一個GeocoderResult
對象,其中的包含了經緯度,省市區,以及周邊的一些地方點surroundingPois
,周邊能夠作個列表給用戶選擇。微信
能夠說和定位相關的離不開這個對象Geocoder
,能夠去官方文檔好好研究一番Geocoder文檔dom
控件類就是在現畫出的地圖上添加一些操做面板(按鈕等),操做地圖的縮放,移動,以及切換全景模式等操做。若是要經過代碼的方式操做,徹底能夠在map
這個對象中操做。添加的時候也要經過addControl(control: Control)
,其實操做這些控件本質上是調用map
中的方法。函數
覆蓋物最多見的是紅色水滴狀的圖標,或者一些公交的路線,這些就是覆蓋物,並且這些覆蓋物能夠定義事件,點擊這些覆蓋物後能夠有後續的操做。並且能夠自定義覆蓋物(圖片覆蓋物)code
像Icon
、Point
是一些接口須要用到的參數,用這些構造函數生成的數據符合哪些接口的要求,其實相似接口interface
htm
地圖的接口大多都集成在map
這個對象中了,除了定位這些服務類
,其餘的類都是輔助map
中的接口的。百度有哪些功能,看map
和服務類
對象
若是想獲取地圖中某個點的信息,如我想知道地圖中那個點的經緯度,能夠經過給map
定義一個點擊事件,點擊事件會返回當前點的信息給回調函數。記錄這些經緯度點,你能夠畫路線圖等等接口
在微信公衆號中用百度地圖:先用的微信的定位獲取經緯度,再用百度的逆地址轉爲百度經緯度,最後用轉化後的經緯度去定位以及畫地圖(居中當前定位點),最後的精準定位交給用戶去決定,由於經緯度定位的效果會有偏差,這頗有必要。最好下方出現個周邊的列表讓用戶去選擇比較接近的地址,畢竟這些周邊是大衆都知道的。上方一個地址搜索框,根據輸入的地址去定位以及移動地圖的中心點,而且生成一個水滴覆蓋物,當用戶點擊這個水滴覆蓋物,肯定最終的定位。其實根據地址去定位是最準確的,可是若是經緯度偏差比較小效果是最好的。
效果:經緯度定位效果最好、若是有偏差根據搜索欄地址去定位、最重要的是用戶能夠操做地圖,自主定位。