根據HTML5 擷取當前位置的經緯度

來源:互聯網
上載者:User

標籤:style   java   執行   分享   回呼函數   color   not   doc   git   

是想讓地圖的定位使用者位置更準確一些。

查看了介紹: http://www.w3school.com.cn/html5/html_5_geolocation.asp

看介紹中拿資料挺簡單。

 

<!DOCTYPE html><html><body><p id="demo">點擊這個按鈕,獲得您的座標:</p><button onclick="getLocation()">試一下</button><script>var x=document.getElementById("demo");function getLocation()  {  if (navigator.geolocation)    {    navigator.geolocation.getCurrentPosition(showPosition);    }  else{x.innerHTML="Geolocation is not supported by this browser.";}  }function showPosition(position)  {  x.innerHTML="Latitude: " + position.coords.latitude +   "<br />Longitude: " + position.coords.longitude;      }</script></body></html>

 

正確點擊按鈕能拿到返回的經緯度

有個問題是:    navigator.geolocation.getCurrentPosition(showPosition);   這個回調,有時有,有時沒有 ,不穩定。  還有就是出來的經緯度弄到地圖上,我了個去,跑到廣州了。。。

 

--------------------------------------

本身百度地圖api 

ip定位:   http://lbsyun.baidu.com/jsdemo.htm#i8_2 ,  有點糙,顯示的是城市名

瀏覽器定位:  http://lbsyun.baidu.com/jsdemo.htm#i8_1   ,拿到經緯度展示,大概的。

 

百度有個 Geolocation, 開啟上面的2個中一個,替換下<script>代碼如下,執行下

<script type="text/javascript">// 百度地圖API功能var map = new BMap.Map("allmap");var point = new BMap.Point(116.331398,39.897445);map.centerAndZoom(point,12);var geolocation = new BMap.Geolocation();  //執行個體化瀏覽器定位對象。 //下面是getCurrentPosition方法。調用該對象的getCurrentPosition(),與HTML5不同的是,這個方法原型是getCurrentPosition(callback:function[, options: PositionOptions]),也就是說無論成功與否都執行回呼函數1,第二個參數是關於位置的選項。 因此能否定位成功需要在回呼函數1中自己判斷。geolocation.getCurrentPosition(function(r){   //定位結果對象會傳遞給r變數    if(this.getStatus() == BMAP_STATUS_SUCCESS){  //通過Geolocation類的getStatus()可以判斷是否成功定位。        var mk = new BMap.Marker(r.point);    //基於定位的這個點的點位建立marker        map.addOverlay(mk);    //將marker作為覆蓋物添加到map地圖上        map.panTo(r.point);   //將地圖中心點移動到定位的這個點位置。注意是r.point而不是r對象。        alert(‘您的位置:‘+r.point.lng+‘,‘+r.point.lat);  //r對象的point屬性也是一個對象,這個對象的lng屬性工作表示經度,lat屬性工作表示緯度。    }    else {        alert(‘failed‘+this.getStatus());    }        },{enableHighAccuracy: true})</script>

  

得到的是大致的經緯度,但城市是對的,位置有些偏差。

 

根據HTML5 擷取當前位置的經緯度

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.