- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- JavaScript接入百度地圖API的方法步驟
1、搜索百度地圖開(kāi)發(fā)平臺
2、注冊百度賬號
3、登陸并申請成為開(kāi)發(fā)者
4、在百度地圖開(kāi)發(fā)平臺的首頁(yè)選擇控制臺,在控制臺中創(chuàng )建應用
創(chuàng )建好應用以后就能在控制臺我的應用中看到這個(gè)應用,其中最重要的是AK,這是百度地圖分配給我們應用的一個(gè)專(zhuān)用的秘鑰,必須使用秘鑰才能訪(fǎng)問(wèn)百度地圖API。
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密鑰"></script>
將ak后的值替換為我們自己的秘鑰。
顯示地圖的DIV一定要有id屬性。
基礎步驟:
var map = new BMapGL.Map("container"); // 創(chuàng )建地圖實(shí)例 var point = new BMapGL.Point(116.404, 39.915); // 通過(guò)地理位置的經(jīng)緯度創(chuàng )建點(diǎn)坐標 map.centerAndZoom(point, 15); // 初始化地圖,設置中心點(diǎn)坐標和地圖級別
可選步驟:
map.centerAndZoom(point, 15); // 初始化地圖,設置中心點(diǎn)坐標和地圖級別 map.enableScrollWheelZoom(true); //開(kāi)啟鼠標滾輪縮放 map.setMapType(BMAP_EARTH_MAP); // 設置地圖類(lèi)型為地球模式
var scaleCtrl = new BMapGL.ScaleControl(); // 添加比例尺控件 map.addControl(scaleCtrl); var zoomCtrl = new BMapGL.ZoomControl(); // 添加縮放控件 map.addControl(zoomCtrl); var cityCtrl = new BMapGL.CityListControl(); // 添加城市列表控件 map.addControl(cityCtrl); var locationControl = new BMapGL.LocationControl(); // 添加定位控件 map.addControl(locationControl);
百度地圖支持瀏覽器定位和IP定位,當瀏覽器定位失敗時(shí),會(huì )默認采用IP定位。瀏覽器定位更加精確,IP定位只能定位到大概位置。
百度地圖自帶定位控件沒(méi)有使用IP定位
//獲取當前地理位置 將地圖中心點(diǎn)移動(dòng)到定位位置 var geolocation = new BMapGL.Geolocation();//創(chuàng )建定位對象 geolocation.getCurrentPosition(function (r) {//通過(guò)定位對象調用定位函數,回調函數形參r表示定位結果 if (this.getStatus() == BMAP_STATUS_SUCCESS) {//如果定位成功 var mk = new BMapGL.Marker(r.point);//創(chuàng )建標記,r是定位結果,r.point就是當前定位的地點(diǎn) map.addOverlay(mk);//將標記對象添加到地圖上 map.panTo(r.point);//將地圖中心店移動(dòng)到定位地點(diǎn) // alert('您的位置:' + r.point.lng + ',' + r.point.lat); } else { alert('failed' + this.getStatus()); } });
//給地圖添加點(diǎn)擊事件 map.addEventListener("click",function(e){ //形參名稱(chēng)e地圖點(diǎn)擊事件的事件源 //console.log(e.latlng.lng+","+e.latlng.lat); var mk = new BMapGL.Marker(e.latlng);//創(chuàng )建標記,r是定位結果,r.point就是當前定位的地點(diǎn) map.addOverlay(mk);//將標記對象添加到地圖上 })
//給地圖添加點(diǎn)擊事件 map.addEventListener("click",function(e){ //形參名稱(chēng)e地圖點(diǎn)擊事件的事件源 //console.log(e.latlng.lng+","+e.latlng.lat); var mk = new BMapGL.Marker(e.latlng);//創(chuàng )建標記,r是定位結果,r.point就是當前定位的地點(diǎn) mk.addEventListener("click",function(){//給標記添加點(diǎn)擊事件 console.log(this);//this指代標記 //由于標記屬于地圖對象map的子標簽,所以當我們點(diǎn)擊標記時(shí),會(huì )出現冒泡,map的點(diǎn)擊事件也會(huì )觸發(fā) //可以使用事件源對象的stopPropagation函數組織后續的事件冒泡 event.stopPropagation(); }); map.addOverlay(mk);//將標記對象添加到地圖上 })
//添加信息窗口(封裝的函數) function addInfoWindow(content,point,width,height,title) { //必要參數 content和point //content既可以是文本 也可以是標簽 //point是經(jīng)緯度地理位置 //后面3個(gè)參數是可選的 var opts = { width: width, // 信息窗口寬度 height: height, // 信息窗口高度 title: title // 信息窗口標題 } var infoWindow = new BMapGL.InfoWindow(content, opts); // 創(chuàng )建信息窗口對象 map.openInfoWindow(infoWindow, point); // 打開(kāi)信息窗口 }
駕車(chē)路徑規劃
//駕車(chē)路徑規劃對象 //該對象一定在地圖加載出來(lái)以后再創(chuàng )建 一般放在創(chuàng )建好地圖對象map以后 而且一個(gè)網(wǎng)頁(yè)最好只能創(chuàng )建一次 否則將無(wú)法清除上一次的規劃路徑 driving = new BMapGL.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true } }); //使用路徑規劃對象 查找路線(xiàn) driving.clearResults();//從地圖上清空上一次的規劃路徑 driving.search(startPoint, endPoint);//開(kāi)始路徑規劃,傳入開(kāi)始點(diǎn)和結束點(diǎn)
公交路徑規劃
//公交路徑規劃對象 //創(chuàng )建公交路徑規劃對象 一定在地圖加載出來(lái)以后再創(chuàng )建 一般放在創(chuàng )建好地圖對象map以后 而且一個(gè)網(wǎng)頁(yè)最好只能創(chuàng )建一次 否則將無(wú)法清除上一次的規劃路徑 transit = new BMapGL.TransitRoute(map, { renderOptions: { map: map }, onSearchComplete: function (results) { if (transit.getStatus() != BMAP_STATUS_SUCCESS) { return; } //alert(results.getNumPlans());//獲取公交規劃方案總數 //在此處設計公交路徑規劃顯示的html模板 var output = ''; for(var i=0;i<results.getNumPlans();i++){ var plan = results.getPlan(i); output +='<div style="margin-top:5px; background-color:#CCC"><p>總時(shí)長(cháng):'+plan.getDuration(true)+'</p>';//獲取時(shí)間 output += '<p>總路程:'+plan.getDistance(true)+'</p>'; //獲取距離 output +=plan.getDescription(true)+"</div>"; } $('#result').css('display', 'block');//#result 是我們自己定義的一個(gè)div 絕對定位 先隱藏起來(lái) 路徑規劃成功顯示 $('#result').html(output);// 將組裝好的路徑規劃HTML標簽模板放到#result div中顯示出來(lái) }, }); transit.clearResults();//清空上次規劃路徑 transit.search(startPoint, endPoint);//公交路徑規劃
根據經(jīng)緯度查找位置
// 創(chuàng )建地理編碼實(shí)例 var myGeo = new BMapGL.Geocoder(); // 根據坐標得到地址描述 myGeo.getLocation(經(jīng)緯度坐標點(diǎn), function(result){ //funcation是一個(gè)回調函數 該回調函數在查找到了具體的地理信息之后才執行 if (result){ alert(result.address); } });
根據地理位置查詢(xún)經(jīng)緯度坐標
//創(chuàng )建地址解析器實(shí)例 var myGeo = new BMapGL.Geocoder(); // 將地址解析結果顯示在地圖上,并調整地圖視野 myGeo.getPoint(地址字符串(重慶市紅旗河溝), function(point){ if(point){ //point就是經(jīng)緯度點(diǎn) }else{ alert('您選擇的地址沒(méi)有解析到結果!'); } },可選參數)//可選參數傳入城市名稱(chēng) 如果不傳則在全球范圍內查找 傳入城市名稱(chēng)只在這個(gè)城市內查找
到此這篇關(guān)于JavaScript接入百度地圖API的方法步驟的文章就介紹到這了,更多相關(guān)JavaScript接入百度地圖內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站