前端開發騰訊地圖定位以騰訊經緯度轉百度經緯度


移動端H5開發調用騰訊地圖定位

1. 騰訊地圖定位步驟

騰訊地圖定位api 提供三種定位方法http://lbs.qq.com/tool/component-geolocation.html

  1. 申請開發密鑰,很簡單注冊就行網址:http://lbs.qq.com/key.html
  2. 調用騰訊地圖javascript腳本   https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js
  3. 將獲取的密鑰填入接口中,定位代碼
  初始化定位
    var geolocation = new qq.maps.Geolocation("WM6BY-YCYRG-7TRQA-I3ODX-24JWQ-ORFX2", "myapp"); //填寫自己的密鑰(此密鑰無效)
    var options = {timeout: 1000};//設置定位超時
    var positionNum = 0;
  開啟定位
  geolocation.getLocation(showPosition, showErr, options);

showPosition :定位成功的回調函數
    
function showPosition(position){
/*初始化經緯度*/
var curLongitude = position.lng;
var curLatitude = position.lat;
provinceName = position.province;
cityName = position.city;
districtName = position.district;
$("#defaultGps").html(
"定位地址:" + provinceName + " " + cityName + " "
+ districtName);

//將獲取的坐標轉換為百度坐標
//注意:要引用百度的js
var ggPoint = new BMap.Point(curLongitude,curLatitude);
setTimeout(function(){
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, 3, 5, translateCallback);
}, 1000);
//轉化成功的回調函數
//千萬注意:回調函數是異步的,所以全局不要在這里賦值
translateCallback = function (data){
translateLat =parseFloat(data.points[0].lat);//緯度
translateLng =parseFloat(data.points[0].lng);//經度
//自己的處理方法,只能在這里處理你轉化后的定位,不能將這里的局部變量賦給全局變量,因為回調是異步的,會先執行此方法之外的代碼,再執行這里的方法

}

}
解決方法:若實在要在全局使用,可以先在上一個頁面轉化坐標,轉化完之后這個頁面再傳遞給這個頁面
showErr:定位失敗的回調函數
      
function showErr(){
//定位失敗處理方法
}

options:定位超時時間單位毫秒

2.計算兩點間距離

//注意引入百度接口

var pointAlat=23.12451;

var pointAlng=114.2378;

var pointBlat=23.25646;

var pointBlng=114.3265;

function distance(pointAlng, pointAlat, pointBlng, pointBlat) {
/*開始計算距離*/
var map = new BMap.Map();
var length = map.getDistance(new BMap.Point(
pointAlng,pointAlat),new BMap.Point(parseFloat(pointBlng), parseFloat(pointBlat)));
 length1=(length/1000).toFixed(2);
return length1;
}

 

3.百度地圖定位轉到騰訊地圖?

  為什么會從百度地圖轉到騰訊地圖定位,一個很坑爹的原因,百度地圖在ios10 以上的定位失敗問題。前期在采用百度地圖api 定位,在未升級到ios10 一切正常,ios和android 的微信公眾號上調用都能成功。突然升級到ios10以后定位就失敗,但是android還是沒有問題。失敗的原因:因為ios10以上的系統修改了訪問定位的權限。只能是https的協議才能訪問,所以要升級全站的http協議。

  不足:采用騰訊地圖定位,會有很大的誤差,本人測試誤差范圍一兩公里(網友說有十公里以內)。如只用定位省市區,等對精確要求不高的可以調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM