HTML5 地理定位

xiaoxiao2021-02-28  106

geolocation(地理定位):允许对我们喜欢的网站分享我们的位置,在开发中使用js获取我们当前位置坐标(经纬度)

getLocation是基于navigator的一个新属性,我们创建一个地理定位的方式:

navigator.geolocation.getCurrentPosition(function(position){//获取当前位置

getCurrentPosition:基于地理定位的一个方法,他可以让我们获取到我们的当前位置坐标

window.onload = getLocation;//打开页面运行该函数 function getLocation(){     var location = document.getElementById("p1");     if(navigator.geolocation){         navigator.geolocation.getCurrentPosition(function(position){//获取当前坐标             var log = position.coords.longitude;//获取经度             var lat = position.coords.latitude;//获取纬度             p1.innerHTML =  "纬度: " +lat + "<br>经度: " + log;         });     }else{         location.innerHTML = "该浏览器不支持地理定位";     } }

注意:1、location是一个关键字,给变量起名的时候不要用location

     2、当没有设置点击事件的时候,页面加载就需要调用函数

                   window.οnlοad= getLocation;页面加载时候直接调用定义的函数

出现的问题:获取到的坐标与实际位置有偏差,原因是系统用的是火星坐标。

火星坐标:是一种国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。

怎么解决获取的火星坐标问题?

通过正规地图公司,比如高德地图JS API、百度地图 JS API,我们可以申请key值,通过这些网站的秘钥进行解析,从而可以获取真正的坐标值(无偏移)。

注意:高德地图提供key值获取到的实际坐标,用百度坐标反查会有偏移。

转载请注明原文地址: https://www.6miu.com/read-50465.html

最新回复(0)