日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML5的定位接口

發(fā)布時間:2023/12/29 HTML 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML5的定位接口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
當(dāng)打開地圖首先想知道的自己的位置。通過設(shè)備獲取位置的手段有三類 GPS,LBS,IP地址。GPS是基于衛(wèi)星的方式,生活中并不常用。LBS是依靠基站信號通過定位算法獲取位置的方式,算是最常用的一類方式。IP地址定位聽起來有些陌生,但是也是一種常用的定位方式,只要你的手機(jī)通過WIFI連入網(wǎng)絡(luò)時基本都會用到IP地址定位 ? ?
? ? ? ? 挺早以前就在Google Map上見識過IP定位,感覺很神奇,我電腦上也沒有GPS,也沒有GMS 它是怎么獲取我的位置。查了些資料才知道這叫做IP定位。當(dāng)時Google Map中這個定位的偏差還挺大,定位功能按鈕只是個很不顯眼的小點。 點擊按鈕后瀏覽器都會有個安全提示(google 想要跟蹤你的實際位置) 心虛的人一般都不會允許。如下圖

在Chorme 和Firefox中會有如下提示。 選擇允許后都可以在地圖上進(jìn)行定位。

Chorme?瀏覽器
Firefox瀏覽器


? ? ? ? ? ?現(xiàn)在我在百度地圖和高德地圖上都沒找到定位的功能按鈕,挺奇怪的,不過它們的地圖API中卻都提供了IP定位的接口。 下面我寫了一個程序?qū)TML5,百度定位接口,高德定位接口進(jìn)行了對比測試。

// 驗證瀏覽器 function isGeolocationAPIAvailable() {var location = "您的瀏覽器不支持IP定位!請使用IE10以上版本或者Chorme瀏覽";if (window.navigator.geolocation) {location = "您的瀏覽器支持IP定位!";nav = window.navigator;}document.getElementById("hint").innerHTML = location; }//調(diào)用HTML5接口實現(xiàn)IP定位 function requestPosition() {if (nav != null) {var geoloc = nav.geolocation;if (geoloc != null) {geoloc.getCurrentPosition(successCallback);} else {alert("你的瀏覽器不支持 HTML5的Geolocation API!");}} else {alert("Navigator對象沒有發(fā)現(xiàn)!");} } //監(jiān)聽IP位置變化 可以喲個clearwatch 結(jié)束監(jiān)聽 function listenForPositionUpdates() {if (nav != null) {var geoloc = nav.geolocation;if (geoloc != null) {watchID = geoloc.watchPosition(successCallback);} else {alert("你的瀏覽器不支持 HTML5的Geolocation API!");}} else {alert("Navigator對象沒有發(fā)現(xiàn)!");} }var acc; //誤差變量 //IP定位的回調(diào)函數(shù); function successCallback(position) {var x = position.coords.longitude;var y = position.coords.latitude;acc = position.coords.accuracy;document.getElementById("xy").value = y + "," + x;gmapurl = gmapurl + y + "," + x + "&zoom=19&size=400x400&sensor=false"var gpsPoint = new BMap.Point(x, y);//將GPS坐標(biāo)進(jìn)行轉(zhuǎn)換,返回和百度地圖匹配的坐標(biāo)BMap.Convertor.translate(gpsPoint, 0, translateCallback); //真實經(jīng)緯度轉(zhuǎn)成百度坐標(biāo)}
效果如下: http://jsfiddle.net/wlygis/8aNwp/embedded/result,js/


(點擊圖片打開調(diào)試界面)

? ? ? ? 經(jīng)過對比較我發(fā)現(xiàn),其實百度高德的定位接口都是封裝了HTML5的位置接口。定位出來的結(jié)果相同, 如果只是想是使用一下IP定位這個功能的朋友完全可以直接使用HTML5來實現(xiàn),可以省去使用第三方的類庫。 注意:HTML5返回的坐標(biāo)數(shù)據(jù)是WGS84坐標(biāo)系統(tǒng)的數(shù)據(jù)。國內(nèi)在線地圖都是經(jīng)過位置偏移的, 如果需要地圖上標(biāo)注,需要使用地圖廠家提供的 GPS數(shù)據(jù)轉(zhuǎn)換接口進(jìn)行轉(zhuǎn)換才能夠在地圖上正確顯示。 Google Map就沒有做這個轉(zhuǎn)換,我對HTML5返回的坐標(biāo)數(shù)據(jù)進(jìn)行了測試,在Google Earth上查詢的結(jié)果和Google Map中查詢的位置不一致,Google Earth的結(jié)果和百度和高德地圖上顯示的是一致的,這說明Google Map和其他國內(nèi)在線地圖一樣,對顯示的數(shù)據(jù)做了偏移處理。但是在標(biāo)記HTML5返回的位置時沒有做偏移處理。這個比較遺憾,惟一有定位功能的地圖還不能正確標(biāo)記位置。 最后說說這個IP定位精度,我自己使用的感受就是IP定位有些時候準(zhǔn)的驚人,有些時候偏的離譜。導(dǎo)致這個問題的原因,主要是IP定位并不是依靠你設(shè)備的IP或者說MAC進(jìn)行定位,而是通過設(shè)備訪問公網(wǎng)的路由進(jìn)行定位的。一般你看到的定位結(jié)果是你上網(wǎng)入口的路由所在的地址。隨著智能路由的普及這種定位方式會越來越準(zhǔn)確。做社區(qū)LBS應(yīng)用的同學(xué)們可以仔細(xì)想想如何把這個技術(shù)應(yīng)用起來。 好就寫到這了 歡迎留言交流。

如果大家想進(jìn)一步了解HTML5定位接口詳細(xì)內(nèi)容可以參考

http://www.w3schools.com/HTML/html5_geolocation.asp

LBS公眾帳號:LBSNew? 二維碼

本文原創(chuàng):歡迎轉(zhuǎn)載?請注明來源作者wlygis。


總結(jié)

以上是生活随笔為你收集整理的HTML5的定位接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。