利用百度地圖API獲取當(dāng)前位置信息的實(shí)例
利用百度地圖API可以做很多事情,個(gè)人感覺(jué)最核心也是最基礎(chǔ)的就是定位功能了。這里分享一個(gè)制作的JS可以實(shí)現(xiàn)登錄網(wǎng)頁(yè)后定位:
<script type="text/javascript"> var map; var gpsPoint; var baiduPoint; var gpsAddress; var baiduAddress; var x; var y; function getLocation() { //根據(jù)IP獲取城市 var myCity = new BMap.LocalCity(); myCity.get(getCityByIP); //獲取GPS坐標(biāo) if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showMap, handleError, { enableHighAccuracy: true, maximumAge: 1000 }); } else { alert("您的瀏覽器不支持使用HTML 5來(lái)獲取地理位置服務(wù)"); } } function showMap(value) { var longitude = value.coords.longitude; var latitude = value.coords.latitude; map = new BMap.Map("map"); x=latitude; y=longitude; //alert("坐標(biāo)經(jīng)度為:" + latitude + ", 緯度為:" + longitude ); gpsPoint = new BMap.Point(longitude, latitude); // 創(chuàng)建點(diǎn)坐標(biāo) //根據(jù)坐標(biāo)逆解析地址 var geoc = new BMap.Geocoder(); geoc.getLocation(gpsPoint, getCityByCoordinate); BMap.Convertor.translate(gpsPoint, 0, translateCallback); map.enableScrollWheelZoom(true); } translateCallback = function (point) { baiduPoint = point; map.centerAndZoom(baiduPoint, 18); var geoc = new BMap.Geocoder(); geoc.getLocation(baiduPoint, getCityByBaiduCoordinate); } function getCityByCoordinate(rs) { gpsAddress = rs.addressComponents; var address = "GPS標(biāo)注:" + gpsAddress.province + "," + gpsAddress.city + "," + gpsAddress.district + "," + gpsAddress.street + "," + gpsAddress.streetNumber; var marker = new BMap.Marker(gpsPoint); // 創(chuàng)建標(biāo)注 map.addOverlay(marker); // 將標(biāo)注添加到地圖中 var labelgps = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); marker.setLabel(labelgps); //添加GPS標(biāo)注 } function getCityByBaiduCoordinate(rs) { baiduAddress = rs.addressComponents; var address = "百度標(biāo)注:" + baiduAddress.province + "," + baiduAddress.city + "," + baiduAddress.district + "," + baiduAddress.street + "," + baiduAddress.streetNumber; var marker = new BMap.Marker(baiduPoint); // 創(chuàng)建標(biāo)注 map.addOverlay(marker); // 將標(biāo)注添加到地圖中 var labelbaidu = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); marker.setLabel(labelbaidu); //添加百度標(biāo)注 } //根據(jù)IP獲取城市 function getCityByIP(rs) { var cityName = rs.name; alert("根據(jù)IP定位您所在的城市為:" + cityName); } function handleError(value) { switch (value.code) { case 1: alert("位置服務(wù)被拒絕"); break; case 2: alert("暫時(shí)獲取不到位置信息"); break; case 3: alert("獲取信息超時(shí)"); break; case 4: alert("未知錯(cuò)誤"); break; } } function init() { getLocation(); } window.onload = init; </script>
完成定位功能后可以添加相關(guān)代碼編輯地圖控件 覆蓋物 信息窗口等等各種功能。
附上百度地圖連接:http://lbsyun.baidu.com/
以上這篇利用百度地圖API獲取當(dāng)前位置信息的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程
也許你使用過(guò)grunt,那么這里來(lái)安利gulp的話就更加不會(huì)陌生了,下面我們就來(lái)看一下基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程2016-05-05js實(shí)現(xiàn)TAB切換對(duì)應(yīng)不同顏色的代碼
這篇文章主要介紹了js實(shí)現(xiàn)TAB切換對(duì)應(yīng)不同顏色的代碼,涉及javascript頁(yè)面元素的遍歷及樣式的動(dòng)態(tài)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08如何手動(dòng)實(shí)現(xiàn)es5中的bind方法詳解
這篇文章主要給大家介紹了關(guān)于如何手動(dòng)實(shí)現(xiàn)es5中的bind方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12javascript解析xml實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)的方法
這篇文章主要介紹了javascript解析xml實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)的方法,涉及javascript針對(duì)節(jié)點(diǎn)的操作與XML文件解析的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07基于js實(shí)現(xiàn)checkbox批量選中操作
這篇文章主要為大家詳細(xì)介紹了基于js實(shí)現(xiàn)checkbox批量選中操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11使用requestAnimationFrame實(shí)現(xiàn)精準(zhǔn)倒計(jì)時(shí)功能
實(shí)現(xiàn)精準(zhǔn)倒計(jì)時(shí)對(duì)于活動(dòng)預(yù)告、限時(shí)優(yōu)惠和賽事計(jì)時(shí)等場(chǎng)景非常重要,常用的倒計(jì)時(shí)方法包括使用JavaScript的setInterval和setTimeout,但這些方法精度有限,為提高精度,本文介紹使用requestAnimationFrame實(shí)現(xiàn)精準(zhǔn)倒計(jì)時(shí)功能,感興趣的朋友一起看看吧2024-09-09JavaScript實(shí)現(xiàn)私有屬性的幾種方式小結(jié)
在JavaScript中,私有屬性是指只能在對(duì)象內(nèi)部訪問(wèn)的屬性,外部無(wú)法直接訪問(wèn),JavaScript并沒(méi)有提供官方的私有屬性的支持,但可以通過(guò)一些技巧來(lái)模擬實(shí)現(xiàn)私有屬性,所以本文給大家總結(jié)了JavaScript實(shí)現(xiàn)私有屬性的幾種方式,需要的朋友可以參考下2024-04-04layui頁(yè)面級(jí)彈出框的實(shí)現(xiàn)
本文主要介紹了layui頁(yè)面級(jí)彈出框的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02詳解如何優(yōu)雅迭代JavaScript字面對(duì)象
迭代是訪問(wèn)集合元素的一種方法,可以被迭代的對(duì)象稱為可迭代對(duì)象,下面這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅迭代JavaScript字面對(duì)象的相關(guān)資料,需要的朋友可以參考下2022-05-05