Web 端獲取地理位置

HTML5 Geolocation API

if (navigator.geolocation) {
   navigator.geolocation.getCurrentPosition(function(position) {
        var latitude  = position.coords.latitude;
        var longitude = position.coords.longitude;
        alert('h5定位成功: latitude:' + latitude + "  longitude:" + longitude);
      }, function(error) {
        switch(error.code){
          case error.TIMEOUT:
             alert('超時'); break;
          case error.PERMISSION_DENIED:
             alert('用戶拒絕提供地理位置');break;
          case error.POSITION_UNAVAILABLE:
             alert('地理位置不可用');break;
          default:break;
         }
     })
}

備註:

1、Chrome瀏覽器從50版本開始,http協議的網址是不能用了。控制檯會有這樣的提示:
       getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.
       各類瀏覽器支持性不好
   2、移動端支持性不是特別好,經測試:大部分安卓手機不支持,ios的支持度還可以

百度地圖web ip定位(用空試下騰訊地圖)

文檔位置:
  百度地圖開放平臺---Web服務API---普通IP定位API,鏈接:http://lbsyun.baidu.com/index.php?title=webapi/ip-api
  注意事項:未認證的開發者賬號每天配額查詢IP數量爲10W次,併發6k每分鐘。

第一步:申請密鑰(ak),作爲訪問服務的依據

申請地址:http://lbsyun.baidu.com/apiconsole/key?application=key

  提交後可獲取相應的 ak 祕鑰

第二步:引入js,上代碼

  Js:

<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你的密鑰"></script>
function getCity() {
    var geoc = new BMap.Geocoder();
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function (r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
            var pt = r.point;
            geoc.getLocation(pt, function (rs) {
              //addComp.province city district street streetNumber
              var addComp = rs.addressComponents; 
            });
        } else {
            console.log('failed' + this.getStatus());
        }   
    }, { enableHighAccuracy: true });
}

​

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章