HTML5 geolocation API(地理定位)允许对我们喜欢的网站分享我们的位置信息
在开发中使用js获取我们当前位置坐标(经纬度)
Geolocation 是基于nabigator的一个新属性,是创建一个定位的方式navigator.geolocation
getCurrentPosition()是基于地理定位的一个方法,获取当前的位置
window.οnlοad=getLocaton();
function getLocaton(){
var location=document.getElementById("p1");
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
var log=position.coords.longitude;//获取经度
var lat=position.coords.latitude;//获取维度
location.innerHTML="经度"+log+"维度"+lat;
})
}else{
location.innerHTML="不支持定位";
}
}
注意:1、location是一个关键字,不能用于变量名
2、当没有点击事件的时候,要用页面加载就要调用函数。
出现的问题:获取到的坐标与实际位置有偏差,原因就是:系统用的是火星坐标。
火星坐标:是一种国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。
怎么解决获取的火星的坐标问题?
通过正规地图公司(高德,百度的API)可以申请key值或ak值,通过这些网站的提供的秘钥进行解析,从而获取真正的坐标值
注意:高德地图提供key值获取到的实际坐标,用百度地图坐标反查是不对的反之一样。