今天就跟大家聊聊有關(guān)html5中怎么獲取當(dāng)前定位位置,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),雙陽(yáng)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:雙陽(yáng)等地區(qū)。雙陽(yáng)做網(wǎng)站價(jià)格咨詢(xún):18982081108代碼如下:
navigator.geolocation.getCurrentPosition(callback);
在獲取坐標(biāo)成功之后會(huì)執(zhí)行回調(diào)函數(shù) callback; callback 方法的參數(shù)就是獲取到的坐標(biāo)點(diǎn);然后可以初始化地圖,設(shè)置控件、中心點(diǎn)、縮放等級(jí),然后給地圖添加point的overlay:
代碼如下:
var map = new BMap.Map("mapDiv");//mapDiv為放地圖的 div 的 id
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
map.centerAndZoom(point, 15);//point為坐標(biāo)點(diǎn),15為地圖縮放級(jí)別,較大級(jí)別是 18
var pointMarker = new BMap.Marker(point);
map.addOverlay(pointMarker);
然而事實(shí)上這樣還不夠,顯示出來(lái)的結(jié)果并不準(zhǔn),這是因?yàn)?getCurrentPosition 獲取到的坐標(biāo)是 GPS 經(jīng)緯度坐標(biāo),而百度地圖的坐標(biāo)是經(jīng)過(guò)特殊轉(zhuǎn)換的,所以,在獲取定位坐標(biāo)和初始化地圖之間需要進(jìn)行一步坐標(biāo)轉(zhuǎn)換工作,該轉(zhuǎn)換方法百度API里面已經(jīng)提供了,轉(zhuǎn)換一個(gè)點(diǎn)或者批量裝換的方法均有提供:?jiǎn)蝹€(gè)點(diǎn)轉(zhuǎn)換需引用 /tupian/20230522/ /tupian/20230522/
代碼如下:
BMap.Convertor.translate(gpsPoint, 0, callback);
//gpsPoint:轉(zhuǎn)換前坐標(biāo),第二個(gè)參數(shù)為轉(zhuǎn)換方法,0表示gps坐標(biāo)轉(zhuǎn)換成百度坐標(biāo),callback回調(diào)函數(shù),參數(shù)為新坐標(biāo)點(diǎn)
例子的詳細(xì)代碼如下:(引用中的ak是申請(qǐng)的key)
代碼如下:
看完上述內(nèi)容,你們對(duì)html5中怎么獲取當(dāng)前定位位置有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。