詳解Javascript百度地圖接口開發(fā)文檔中的類和方法
JavaScript API v2.0介紹
百度地圖JavaScript API是一套由JavaScript語言編寫的應用程序接口,它能夠幫助您在網(wǎng)站中構建功能豐富、交互性強的地圖應用,包含了構建地圖基本功能的各種接口,提供了諸如本地搜索、路線規(guī)劃等數(shù)據(jù)服務。
該套API免費對外開放。自v1.5版本起,您需先申請密鑰(ak)才可使用,接口(除發(fā)送短信功能外)無使用次數(shù)限制。
JavaScript API首家支持Https,如需要申請Https服務,請您認證企業(yè)信息,成為企業(yè)認證用戶后,https將自動開通,同時獲得更高的服務配額。
注意:僅JavaScript API
V2.0版本支持https,其他JavaScript API版本均不支持。使用https服務,請先檢查您的版本以及配置注意事項。
調(diào)用API的基本文件格式
獲取JavaScript API服務方法:
自JS APIv1.5之后,最新版本為2.0,您需要首先申請密鑰(ak),才可成功加載API JS文件。
ak的使用方法如下:
<script src="http://api.map.baidu.com/api?v=2.0&ak"您的密鑰" type="text/javascript">
其中參數(shù)v為API當前的版本號,目前最新版本為2.0。在1.2版本之前您還可以設置services參數(shù),以告知API是否加載服務部分,true表示加載,false表示不加載,默認為true。。
創(chuàng)建地圖實例
var map = new
BMap.Map("container");
//創(chuàng)建點坐標
var point = newBMap.Point(104.045,30.559);
//地圖初始化
map.centerAndZoom(point,15);
百度地圖控件
向地圖添加控件:
map.addControl(newBMap.NavigationControl());
//控件位置:
var opts = {offset: newBMap.Size(150, 5)}
map.addControl(newBMap.ScaleControl(opts));
//修改控件配置:
var opts = {type:BMAP_NAVIGATION_CONTROL_SMALL}
map.addControl(newBMap.NavigationControl(opts));
地圖覆蓋物
所有疊加或覆蓋到地圖的內(nèi)容,我們統(tǒng)稱為地圖覆蓋物。如標注、矢量圖形元素(包括:折線和多邊形和圓)、信息窗口等。覆蓋物擁有自己的地理坐標,當您拖動或縮放地圖時,它們會相應的移動。
可以使用map.addOverlay方法向地圖添加覆蓋物,使用map.removeOverlay方法移除覆蓋物,注意此方法不適用于InfoWindow。
//創(chuàng)建標注: var marker = newBMap.Marker(new BMap.Point(104.045,30.559)); //將標注添加到地圖中: map.addOverlay(marker);
地圖信息窗口提示
信息窗口在地圖上方的浮動顯示HTML內(nèi)容。信息窗口可直接在地圖上的任意位置打開,也可以在標注對象上打開(此時信息窗口的坐標與標注的坐標一致)。您可以使用InfoWindow來創(chuàng)建一個信息窗實例,注意同一時刻地圖上只能有一個信息窗口處于打開狀態(tài)。
var opts = {
width : 250,//信息窗口寬度
height: 100,//信息窗口高度
title : "Hello"http://信息窗口標題
}
var infoWindow = newBMap.InfoWindow("World", opts);//創(chuàng)建信息窗口對象
map.openInfoWindow(infoWindow,map.getCenter());//打開信息窗口
地圖信息窗口提示(事件觸發(fā)顯示)
事件方法與Map事件機制相同??蓞⒖际录糠?/p>
監(jiān)聽標注事件:
marker.addEventListener("click",function(){
alert("您點擊了標注");
});
給標注添加點擊事件:
marker.addEventListener("click",function(){
map.openInfoWindow(infoWindow,map.getCenter());
});
定位(瀏覽器定位)
Geolocation地圖定位,返回用戶當前的位置。此方法利用瀏覽器的geolocation接口獲取用戶當前位置,不支持的瀏覽器將無法獲取。
創(chuàng)建Geolocation對象實例:
var geolocation = newBMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){ //判斷狀態(tài)
var mk = new BMap.Marker(r.point);//創(chuàng)建一個地圖標注
map.addOverlay(mk);
map.panTo(r.point);//轉向獲取的地理坐標所在位置
alert('您的位置:'+r.point.lng+','+r.point.lat);
}
else {
alert('failed'+this.getStatus());
}
})
定位(IP定位)
LocalCity此類用于獲取用戶所在的城市位置信息。(根據(jù)用戶IP自動定位到城市)
創(chuàng)建LocalCity對象實例:
myCity = new BMap.LocalCity();
myCity.get(function(e){
map.setCenter(e.name);
alert(e.name);
});
定位(經(jīng)緯度定位)
點擊獲取經(jīng)緯度實例:
map.addEventListener("click",function(e){
alert(e.point.lng + "," + e.point.lat);
});
根據(jù)經(jīng)緯度定位實例:
var new_point = new BMap.Point(116.299689,40.1196618); var marker = newBMap.Marker(new_point);//創(chuàng)建標注 map.addOverlay(marker);//將標注添加到地圖中 map.panTo(new_point);
地址解析
var myGeo = newBMap.Geocoder();//創(chuàng)建地址解析器實例
//將地址解析結果顯示在地圖上,并調(diào)整地圖視野
myGeo.getPoint("北京市昌平區(qū)回龍觀地鐵站", function(point){
if (point) {
map.centerAndZoom(point, 15);
map.addOverlay(new BMap.Marker(point)); //在地圖上標注地理位置
}else{
alert("您選擇地址沒有解析到結果!");
}
}, "北京市");
逆地址解析
Geocoder類用于獲取用戶的地址解析
var geoc = newBMap.Geocoder();
map.addEventListener("click",function(e){
var pt = e.point; //點擊位置的坐標點
geoc.getLocation(pt, function(rs){
var addComp = rs.addressComponents;
alert(addComp.province + ", " +addComp.city + ", " + addComp.district + ", " +addComp.street + ", " + addComp.streetNumber);
});
步行規(guī)劃
WalkingRoute用于獲取步行路線規(guī)劃方案。創(chuàng)建一個步行導航實例。location表示檢索區(qū)域,類型可為地圖實例、坐標點或城市名稱的字符串。當參數(shù)為地圖實例時,檢索位置由當前地圖中心點確定;當參數(shù)為坐標時,檢索位置由該點所在位置確定;當參數(shù)為城市名稱時,檢索會在該城市內(nèi)進行。
步行規(guī)劃實例:
var walking = newBMap.WalkingRoute(map, {renderOptions:{map: map, autoViewport: true}});
walking.search("天壇公園", "故宮");
獲取步行導航的結果顯示實例:
var walking = newBMap.WalkingRoute(map, {renderOptions: {map: map, panel: "r-result",autoViewport: true}});
walking.search("天壇公園", "故宮");
駕車規(guī)劃
DrivingRoute此類用于獲取駕車路線規(guī)劃方案
駕車線路規(guī)劃實例:
var driving = newBMap.DrivingRoute(map, {renderOptions: {map: map, panel: "r-result",autoViewport: true}});
driving.search("女子醫(yī)院", "王府井廣場");
公交檢索
TransitRoute用于獲取公交路線規(guī)劃方案
公交檢索實例:
var transit = newBMap.TransitRoute(map, {renderOptions: {map: map, panel:"r-result"}});
transit.search("中醫(yī)大省醫(yī)院", "明宇金融廣場");
信息檢索
LocalSearch用于位置檢索、周邊檢索和范圍檢索
關鍵字檢索實例:
var local = new BMap.LocalSearch(map,{
renderOptions:{map: map}
});
local.search("景點");
本地檢索結果實例:
var local = newBMap.LocalSearch(map, {
renderOptions: {map: map, panel: "r-result"}
});
local.search("餐飲");
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- JavaScript實現(xiàn)經(jīng)緯度轉換成地址功能
- 用NodeJS實現(xiàn)批量查詢地理位置的經(jīng)緯度接口
- 基于JavaScript實現(xiàn)高德地圖和百度地圖提取行政區(qū)邊界經(jīng)緯度坐標
- 根據(jù)經(jīng)緯度計算地球上兩點之間的距離js實現(xiàn)代碼
- JS開發(fā)中百度地圖+城市聯(lián)動實現(xiàn)實時觸發(fā)查詢地址功能
- JS百度地圖搜索懸浮窗功能
- js實現(xiàn)百度地圖定位于地址逆解析,顯示自己當前的地理位置
- js實現(xiàn)百度地圖同時顯示多個路書效果
- JS代碼實現(xiàn)百度地圖 畫圓 刪除標注
- 最全面的百度地圖JavaScript離線版開發(fā)
- JS實現(xiàn)根據(jù)詳細地址獲取經(jīng)緯度功能示例
相關文章
BootStrap Validator 版本差異問題導致的submitHandler失效問題的解決方法
這篇文章主要介紹了BootStrap Validator 版本差異問題導致的submitHandler失效問題的解決方法,下面通過本文給大家詳細說明一下,需要的朋友可以參考下2016-12-12
javascript檢測瀏覽器的縮放狀態(tài)實現(xiàn)代碼
這篇文章主要介紹了javascript檢測瀏覽器的縮放狀態(tài)實現(xiàn)代碼,需要的朋友可以參考下2014-09-09
JS使用正則截取兩個字符串之間的字符串實現(xiàn)方法詳解
這篇文章主要介紹了JS使用正則截取兩個字符串之間的字符串實現(xiàn)方法,結合實例形式簡單分析了JS正則匹配與截取操作的實現(xiàn)技巧,并拓展分析了數(shù)量詞的概念與功能,需要的朋友可以參考下2017-01-01
JavaScript詳解類數(shù)組與可迭代對象的實現(xiàn)原理
這篇文章主要介紹了JavaScript詳解類數(shù)組與可迭代對象的實現(xiàn)原理,ES6中引入了迭代器與可迭代對象的概念,并且提供了對可迭代對象的相關支持,如for...of循環(huán),Map(iterable)構造器,展開語法...等。讓我們對數(shù)組外的數(shù)據(jù)集合的遍歷操作也得到極大簡化2022-06-06
bootstrap weebox 支持ajax的模態(tài)彈出框
本篇介紹的bootstrap weebox(支持ajax的模態(tài)彈出框),歷經(jīng)多次修改,目前版本已經(jīng)穩(wěn)定,整合了bootstrap的響應式,界面簡單,功能卻無比豐富,支持ajax、圖片預覽等等2017-02-02

