前端獲取用戶地理定位的方法及一些注意事項(xiàng)
前言:
定位一般分為兩種場(chǎng)景:移動(dòng)端和PC,下面分別講下這兩個(gè)場(chǎng)景在使用定位過(guò)程中的一些注意事項(xiàng)。
- 移動(dòng)端
移動(dòng)端包括手機(jī),pad和其它帶有GPS定位芯片的智能設(shè)備(如手表、音箱等),移動(dòng)端的系統(tǒng)包括iOS和Android。成功完成定位需要達(dá)成以下前提條件:
系統(tǒng)GPS打開(kāi)
所使用的App或?yàn)g覽器已獲取定位權(quán)限
對(duì)打開(kāi)的頁(yè)面允許使用定位
對(duì)于iOS10以上系統(tǒng)和Android的一些版本已禁止在非HTTPS協(xié)議的域名下定位,請(qǐng)盡快將站點(diǎn)升級(jí)到HTTPS- PC端
因?yàn)閜c設(shè)備上大都沒(méi)有GPS芯片,所以在PC上的定位主要通過(guò)IP精準(zhǔn)定位服務(wù)
1 GetCurrentPosition API
這是H5新推出的地理位置API,但從性能和精確度上來(lái)說(shuō)相對(duì)較差,使用者幾乎沒(méi)有。
2 第三方服務(wù)
2.1 高德地圖服務(wù)
注意:在使用該服務(wù)前需要申請(qǐng) Key 點(diǎn)擊前往申請(qǐng)
<!-- key:填寫(xiě)申請(qǐng)的key plugin:需要用的插件,如果不填寫(xiě)將 AMap.xxx is not constructor 錯(cuò)誤 --> <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=[申請(qǐng)的key]&plugin=AMap.Geolocation"></script>
- 使用
let geolocation = new AMap.Geolocation({
enableHighAccuracy: true, // 是否使用高精度定位
timeout: 10000, // 超時(shí)時(shí)間,單位為毫秒
});
geolocation.getCurrentPosition(function(status, result) {
if (status === 'complete') {
console.log(result); // 定位成功
} else {
console.log(result);// 定位失敗
}
});
具體使用情況查看高德地圖手冊(cè)點(diǎn)擊跳轉(zhuǎn)
2.2 騰訊地圖服務(wù)
注意:在使用該服務(wù)前需要申請(qǐng) Key 點(diǎn)擊前往申請(qǐng)
<!--
key:填寫(xiě)申請(qǐng)的key
plugin:需要用的插件,如果不填寫(xiě)將 AMap.xxx is not constructor 錯(cuò)誤
-->
<script type="text/javascript" src="https://apis.map.qq.com/tools/geolocation/min?key=[申請(qǐng)的key]&referer=location&callback=initMap"></script>
- 使用
let geolocation = new qq.maps.Geolocation('[申請(qǐng)的key]');
geolocation.getLocation((position)=> {
console.log(position);
}, (result)=> {
console.log('獲取定位失敗', JSON.stringify(result));
}, {
timeout: 15000, // 默認(rèn)值為10s;
failTipFlag: true
});總結(jié)
到此這篇關(guān)于前端獲取用戶地理定位的方法及一些注意事項(xiàng)的文章就介紹到這了,更多相關(guān)前端獲取用戶地理定位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決iframe的frameborder在chrome/ff/ie下的差異
最近的項(xiàng)目中使用了動(dòng)態(tài)創(chuàng)建iframe的js方法,發(fā)現(xiàn)iframe.frameborder="0"在IE7下不管用,而chrome/ff都正常的,很是郁悶。2010-08-08
利用JS實(shí)現(xiàn)頁(yè)面刪除并重新排序功能
這篇文章主要介紹了利用JS實(shí)現(xiàn)頁(yè)面刪除并重新排序功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12
通過(guò)實(shí)例了解Javascript柯里化流程
這篇文章主要介紹了通過(guò)實(shí)例了解Javascript柯里化流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
JS實(shí)現(xiàn)的表頭列頭固定頁(yè)面功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)的表頭列頭固定頁(yè)面功能,涉及javascript針對(duì)頁(yè)面元素及表格樣式動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2017-01-01
關(guān)于二級(jí)域名下使用一級(jí)域名下的COOKIE的問(wèn)題
我們通常在使用cookie的時(shí)候一般都只是局限在本站內(nèi)使用,也就是只在一個(gè)域名下使用2011-11-11
JavaScript數(shù)組常用的增刪改查與其他屬性詳解
這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組常用的增刪改查與其他屬性的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
微信小程序?qū)崿F(xiàn)點(diǎn)擊文字頁(yè)面跳轉(zhuǎn)功能【附源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊文字頁(yè)面跳轉(zhuǎn)功能,涉及navigator導(dǎo)航組件的簡(jiǎn)單使用技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2017-12-12

