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