簡(jiǎn)介
目錄
- 1 JavaScript API功能介紹
- 2 面向的讀者
- 3 坐標(biāo)轉(zhuǎn)換
- 4 版本說(shuō)明及申請(qǐng)API ak
- 5 獲取JavaScript API服務(wù)方法
- 6 開(kāi)發(fā)移動(dòng)平臺(tái)上的地圖應(yīng)用
- 7 Https 說(shuō)明
- 7.1 申請(qǐng)
- 7.2 配置
- 8 異步加載
- 9 兼容性
- 10 獲取技術(shù)支持途徑
JavaScript API功能介紹
百度地圖JavaScript API是一套由JavaScript語(yǔ)言編寫(xiě)的應(yīng)用程序接口,它能夠幫助您在網(wǎng)站中構(gòu)建功能豐富、交互性強(qiáng)的地圖應(yīng)用,包含了構(gòu)建地圖基本功能的各種接口,提供了諸如本地搜索、路線規(guī)劃等數(shù)據(jù)服務(wù)。
基本地圖功能:展示(支持2D圖、3D圖、衛(wèi)星圖)、平移、縮放、拖拽等。
地圖控件展示功能:可以在地圖上添加/刪除鷹眼、工具條、比例尺、自定義版權(quán)、地圖類(lèi)型及定位控件,并可以設(shè)置各類(lèi)控件的顯示位置。
覆蓋物功能:支持在地圖上添加/刪除點(diǎn)、線、面、熱區(qū)、行政區(qū)劃、用戶自定義覆蓋物等;開(kāi)源庫(kù)提供富標(biāo)注、標(biāo)注管理器、聚合marker、自定義覆蓋物等功能。
工具類(lèi)功能:提供經(jīng)緯度坐標(biāo)與屏幕坐標(biāo)互轉(zhuǎn)功能;開(kāi)源庫(kù)里提供測(cè)距、幾何運(yùn)算及GPS坐標(biāo)/國(guó)測(cè)局坐標(biāo)轉(zhuǎn)百度坐標(biāo)等功能。
定位功能:支持IP定位及瀏覽器(支持html5特性瀏覽器)定位功能。
右鍵菜單功能:支持在地圖上添加右鍵菜單。
鼠標(biāo)交互功能:支持動(dòng)態(tài)修改鼠標(biāo)樣式、鼠標(biāo)拖拽/縮放地圖及鼠標(biāo)繪制等功能。
圖層功能:支持重設(shè)地圖底圖、地圖上疊加實(shí)時(shí)交通圖層或自定義圖層功能。
本地搜索功能:包括根據(jù)城市、矩形范圍、圓形范圍等條件進(jìn)行POI搜索;且支持用戶自有數(shù)據(jù)的檢索。
公交檢索:支持起始點(diǎn)坐標(biāo)、起始點(diǎn)名稱(chēng)、LocalSearchPoi實(shí)例三種檢索條件的檢索;檢索結(jié)果支持便捷、可換乘、少步行、不乘地鐵四種方案。
駕車(chē)檢索:支持起始點(diǎn)坐標(biāo)、起始點(diǎn)名稱(chēng)、LocalSearchPoi實(shí)例三種檢索條件的檢索;返回最短時(shí)間、最短距離、避開(kāi)高速的駕車(chē)導(dǎo)航結(jié)果;且提供計(jì)算打車(chē)費(fèi)用服務(wù)。
步行導(dǎo)航:提供步行導(dǎo)航方案。
逆/地理編碼:支持百度坐標(biāo)與地址描述信息之間的轉(zhuǎn)換服務(wù)。
個(gè)性化數(shù)據(jù)展示功能:用戶自有數(shù)據(jù)存儲(chǔ)到LBS.云后,JavaScript API可以提供以麻點(diǎn)圖形式展示自有數(shù)據(jù)功能。
面向的讀者
API是提供給那些具有一定JavaScript編程經(jīng)驗(yàn)和了解面向?qū)ο蟾拍畹淖x者使用。此外,讀者還應(yīng)該對(duì)地圖產(chǎn)品有一定的了解。
您在使用中遇到任何問(wèn)題,都可以通過(guò)API論壇反饋給我們。
坐標(biāo)轉(zhuǎn)換
國(guó)際經(jīng)緯度坐標(biāo)標(biāo)準(zhǔn)為WGS-84,國(guó)內(nèi)必須至少使用國(guó)測(cè)局制定的GCJ-02,對(duì)地理位置進(jìn)行首次加密。百度坐標(biāo)在此基礎(chǔ)上,進(jìn)行了BD-09二次加密措施,更加保護(hù)了個(gè)人隱私。百度對(duì)外接口的坐標(biāo)系并不是GPS采集的真實(shí)經(jīng)緯度,需要通過(guò)坐標(biāo)轉(zhuǎn)換接口進(jìn)行轉(zhuǎn)換。
坐標(biāo)轉(zhuǎn)換、批量坐標(biāo)轉(zhuǎn)換示例詳見(jiàn)JavaScript API示例【地圖示例_坐標(biāo)換算】。
版本說(shuō)明及申請(qǐng)API ak
為了統(tǒng)一平臺(tái)服務(wù)的配額管理,JavaScript API在新版本引入ak機(jī)制。JavaScript API v1.4及以前版本無(wú)須申請(qǐng)密鑰(ak),自v1.5版本開(kāi)始需要先申請(qǐng)密鑰(ak),才可使用,如需獲取更高配額,請(qǐng)點(diǎn)擊申請(qǐng)認(rèn)證企業(yè)用戶。
地址:
http://api.map.baidu.com/api?v=1.4 //參數(shù)v表示您加載API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。 http://api.map.baidu.com/api?v=2.0&ak=您的密鑰 //使用JavaScript APIv2.0請(qǐng)先申請(qǐng)密鑰ak,按此方式引用。
當(dāng)權(quán)限驗(yàn)證(ak)失敗時(shí),會(huì)報(bào)如下錯(cuò)誤:
驗(yàn)證失敗的可能原因包括:
尚未在API控制臺(tái)申請(qǐng)ak,即'...ak=';
密鑰設(shè)置錯(cuò)誤,如E4805d16520de693a3fe707cdc962045為正確的ak,但是設(shè)置時(shí)輸入的ak為E4805d16520de693a3fe707cdc962045xx;
密鑰未通過(guò)白名單,如下圖的ak在非baidu.com域名下會(huì)報(bào)錯(cuò)。
API控制臺(tái)關(guān)閉JavaScript API時(shí)會(huì)報(bào)錯(cuò);
當(dāng)API升級(jí)后,如果已有接口在使用、命名等方面發(fā)生了變化,我們會(huì)為其增加一個(gè)新的版本號(hào),這不會(huì)對(duì)您現(xiàn)有的應(yīng)用造成任何影響。如果升級(jí)只是修復(fù)一些bug或者在不影響現(xiàn)有功能的前提下增加接口、改善性能,則版本號(hào)不會(huì)發(fā)生變化。您可以在更新日志頁(yè)面查看版本的變化。
錯(cuò)誤的使用“服務(wù)端AK”用于 JavaScript API,JS API只支持瀏覽器類(lèi)型的ak(自2016年1月15日升級(jí))
因新系統(tǒng)升級(jí),新建“服務(wù)端AK”不再支持瀏覽器端使用;在瀏覽器端使用,請(qǐng)選擇“瀏覽器端AK”,例如JavaScript API只支持瀏覽器類(lèi)型AK。
對(duì)于以前申請(qǐng)的服務(wù)端AK,不變更即不受影響,仍支持瀏覽器端使用;如更新老的服務(wù)端AK,再次保存,則按新創(chuàng)建AK處理,不再支持瀏覽器端使用。
獲取JavaScript API服務(wù)方法
自JS APIv1.5之后,最新版本為2.0,您需要首先申請(qǐng)密鑰(ak),才可成功加載API JS文件。ak的使用方法如下:
<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密鑰" type="text/javascript"></script>
其中參數(shù)v為API當(dāng)前的版本號(hào),目前最新版本為2.0。在1.2版本之前您還可以設(shè)置services參數(shù),以告知API是否加載服務(wù)部分,true表示加載,false表示不加載,默認(rèn)為true。
地圖API是由JavaScript語(yǔ)言編寫(xiě)的,您在使用之前需要通過(guò)<script>標(biāo)簽將API引用到頁(yè)面中:
使用V1.4及以前版本的引用方式:
<script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>
使用V2.0版本的引用方式:
<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密鑰" type="text/javascript"></script>
其中參數(shù)v為API當(dāng)前的版本號(hào),目前最新版本為2.0。在1.2版本之前您還可以設(shè)置services參數(shù),以告知API是否加載服務(wù)部分,true表示加載,false表示不加載,默認(rèn)為true。
開(kāi)發(fā)移動(dòng)平臺(tái)上的地圖應(yīng)用
API自1.1版本起開(kāi)始支持iPhone、Android這樣的移動(dòng)平臺(tái)。用戶通過(guò)手機(jī)瀏覽器就可以訪問(wèn)由地圖API創(chuàng)建出來(lái)的應(yīng)用。移動(dòng)平臺(tái)的屏幕尺寸通常比PC或筆記本要小,操作方式也有所不同。為了更好的在手機(jī)瀏覽器上展示地圖,我們有如下建議:
將地圖容器高設(shè)置為100%,使其充滿整個(gè)屏幕,或者您也可以計(jì)算瀏覽器窗口的大小并進(jìn)行設(shè)置。
添加下面的meta標(biāo)簽: <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 這樣做是為了讓頁(yè)面以正常比例進(jìn)行顯示并且禁止用戶縮放頁(yè)面的操作。
您可以參考 Apple's Developer documentation 和 Android documentation 獲得更多信息。
移動(dòng)端開(kāi)發(fā)具體實(shí)現(xiàn)請(qǐng)參考相關(guān)下載_示例代碼提供的Demo源碼。
Https 說(shuō)明
申請(qǐng)
JavaScript API首家支持Https,已全面開(kāi)放,無(wú)需申請(qǐng)Https服務(wù)可直接使用。
如您需要更高配額,請(qǐng)您認(rèn)證企業(yè)信息,成為企業(yè)認(rèn)證用戶后,獲得更高的服務(wù)配額。
注意:僅JavaScript API V2.0 版本支持https,其他JavaScript API版本均不支持。使用https服務(wù),請(qǐng)先檢查您的版本。
配置
1. 如果使用JavaScript API ,需要加一個(gè)特殊字段 (s=1):
https://api.map.baidu.com/api?v=2.0&ak=你的密鑰&s=1;
2. 對(duì)于Web API 無(wú)需加特殊字段,直接使用 HTTPS協(xié)議訪問(wèn)即可,如Geocoding:
https://api.map.baidu.com/geocoder/v2/?ak=你的秘鑰&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
3. 如果對(duì)數(shù)據(jù)安全要求高,建議使用 POST請(qǐng)求,避免把請(qǐng)求參數(shù)放到 URI中敏感信息被泄露;
異步加載
JavaScript API支持異步加載,您可以在引用腳本的時(shí)候添加callback參數(shù),當(dāng)腳本加載完成后callback函數(shù)會(huì)被立刻調(diào)用。請(qǐng)參考下面的使用示例:
<html>
<head>
<meta charset="utf-8"/>
<title>異步加載</title>
<script type="text/javascript">
function initialize() {
var mp = new BMap.Map('map');
mp.centerAndZoom(new BMap.Point(121.491, 31.233), 11);
}
function loadScript() {
var script = document.createElement("script");
script.src = "http://api.map.baidu.com/api?v=2.0&ak=您的密鑰&callback=initialize";//此為v2.0版本的引用方式
// http://api.map.baidu.com/api?v=1.4&ak=您的密鑰&callback=initialize"; //此為v1.4版本及以前版本的引用方式
document.body.appendChild(script);
}
window.onload = loadScript;
</script>
</head>
<body>
<div id="map" style="width:500px;height:320px"></div>
</body>
</html>
兼容性
瀏覽器:IE 6.0+、Firefox 3.6+、Opera 9.0+、Safari 3.0+、Chrome
操作系統(tǒng):Windows、Mac、Linux
移動(dòng)平臺(tái):iPhone、Android
獲取技術(shù)支持途徑
如果您在使用百度地圖API中遇到問(wèn)題,請(qǐng)嘗試通過(guò)以下途徑解決:
確認(rèn)您使用了正確的地圖API地址。
訪問(wèn)百度地圖API論壇,查找相關(guān)問(wèn)題的帖子,或者將您的問(wèn)題發(fā)布到貼吧中。
查看常見(jiàn)問(wèn)題。
加入百度HI群。