日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

js百度地图android定位不准,百度地图js定位不准

發(fā)布時間:2024/9/27 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js百度地图android定位不准,百度地图js定位不准 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

瀏覽器H5定位即navigator.geolocation,通過IP或者域名的形式,如:http://172.21.3.82:8080 和http://b.cunzhang.com進行訪問時,調用navigator.geolocation.getCurrentPosition,打開控制臺,你會發(fā)現(xiàn)有以下錯誤信息:

Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).

“只有在安全來源的情況才才被允許”。錯誤信息里還包含了一個提示鏈接,我們不妨打開這個

鏈接https://goo.gl/Y0ZkNV)看看。原來,為了保障用戶的安全,Chrome瀏覽器認為只有安全的

來源才能開啟定位服務。那什么樣才算是安全的來源呢?在打開鏈接的頁面上有這么一段話:

“Secure origins” are origins that match at least one of the following (scheme, host, port) patterns:(https, *, *)

(wss, *, *)

(*, localhost, *)

(*, 127/8, *)

(*, ::1/128, *)

(file, *, —)

(chrome-extension, *, —)

This list may be incomplete, and may need to be changed. Please discuss!

大概意思是說只有包含上述列表中的scheme、host或者port才會被認為是安全的來源,現(xiàn)在這個列表還不夠完整,后續(xù)可能還會有變動,有待討論。

如果需要在域名訪問的基礎上實現(xiàn)地位位置的定位,那我們只能把http協(xié)議升級為https了。

html>

body,?html,?#allmap?{

width:?100%;

height:?100%;

overflow:?hidden;

margin:?0;

font-family:?"微軟雅黑";

}

地圖展示

//?百度地圖API功能

var?map?=?new?BMap.Map("allmap");????//?創(chuàng)建Map實例

var?point?=?new?BMap.Point(116.331398,?39.897445);

map.centerAndZoom(point,?30);

map.enableScrollWheelZoom(true);?????//開啟鼠標滾輪縮放

//添加地圖類型控件

map.setCurrentCity("北京");

var?geolocation?=?new?BMap.Geolocation();

geolocation.getCurrentPosition(function?(r)?{

if?(this.getStatus()?==?BMAP_STATUS_SUCCESS)?{

var?mk?=?new?BMap.Marker(r.point);

map.addOverlay(mk);

map.panTo(r.point);

point?=?r.point;

console.log(r.point.lng?+?','?+?r.point.lat);

alert('您的位置:'?+?r.point.lng?+?','?+?r.point.lat);

getName(point);

}

else?{

alert('failed'?+?this.getStatus());

}

},?{?enableHighAccuracy:?true?})

function?callback(data)?{

console.log(data);

console.log('轉化后:'+data.points[0].lng?+?','?+?data.points[0].lat);

alert('您的真實位置:'?+?data.points[0].lng?+?','?+?data.points[0].lat);

var?newpoint?=?new?BMap.Point(data.points[0].lng,?data.points[0].lat);

var?mk?=?new?BMap.Marker(newpoint);

map.addOverlay(mk);

map.panTo(newpoint);

getName(newpoint);

}

function?getName(point)?{

var?geoc?=?new?BMap.Geocoder();

geoc.getLocation(point,?function?(rs)?{

var?addComp?=?rs.addressComponents;

console.log(addComp);

alert(addComp.province?+?",?"?+?addComp.city?+?",?"?+

addComp.district?+?",?"?+?addComp.street?+?",?"?+?addComp.streetNumber);

});

}

//瀏覽器H5定位

if?(navigator.geolocation)?{

navigator.geolocation.getCurrentPosition(function?(position)?{

//得到html5定位結果

var?x?=?position.coords.longitude;

var?y?=?position.coords.latitude;

console.log(position.coords);

alert('您的位置:'?+?x?+?','?+?y);

//由于html5定位的結果是國際標準gps,所以需要轉為百度坐標系,from=1,

to=5

var?newpoint?=?new?BMap.Point(x,?y);

var?convertor?=?new?BMap.Convertor();

var?pointArr?=?[];

pointArr.push(newpoint);

convertor.translate(pointArr,?1,?5,?callback)

},?function?(e)?{

console.log(e);

alert(e.message);

})

}?else?{

alert("沒有定位權限");

}

在https站點下,通過對比我們發(fā)現(xiàn)百度api獲取的坐標和瀏覽器H5經(jīng)過坐標轉換獲得的坐標是一致的。所以要想在瀏覽器中通過百度api獲取精確的定位,最好把站點升級為https協(xié)議。

總結

以上是生活随笔為你收集整理的js百度地图android定位不准,百度地图js定位不准的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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