以上几篇博客是不是大家都感觉有些太正式性? 显得有些乏味? 接下来给大家介绍一个有趣的功能。
h5之前我们的网页可以提供定位服务吗? 答案无疑是否定的。那么现在h5给我们提供了这项服务,大家心里是不是有些小窃喜呢?
了解定位之前我们先思考一下我们能够利用定位做些什么呢? 地图、导航、外卖等等一些列便利服务。
Geolocation:地理定位 允许对我们喜欢的网站分享我们的位置信息
在开发中使用js获取我们当前位置的坐标(经纬度)。
Geolocation是基于navigator的一个新属性,我们创建一个地理定位的方式
navigator.geolocation.getCurrentPosition //创建地理定位
getCurrentPosition()是基于地理定位的一个方法,他可以让我们获取到我们当前的位置坐标
<script>
window.onload = getLocation;
function getLocation(){
var locationEle = document.getElementById("p1");
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
var log = position.coords.longitude;//获取经度
var lat = position.coords.latitude;//获取经度
locationEle.innerHTML = "精度"+log+"纬度"+lat;
})
}else{
locationEle.innerHTML = "该浏览器不支持定位服务"
}
};
</script>
注意:
1.locaition是关键字,不建议在声明变量的时候使用。
2.当没有设置点击事件的时候,要页面加载的时候就调用
出现的问题:获取到的坐标与实际有偏差,原因:系统用的是火星坐标
火星坐标:对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏
火星坐标系统:
解决方案:
1.通过正规地图公司(如:高德地图JSAPI和百度地图JSAPI),我们可以申请key值ak
通过这些网站的秘钥转换,通过秘钥进行解析,从而可以获取到真正的坐标值,无偏移。
注意:高德地图提供的key值获取到的实际坐标,用百度地图坐标反差会有偏差,反之,亦然。所以,我们在以后开发的时候,使用那个地图公司的key值,就用那个地图。