您的位置:首页 > Web前端 > HTML5

HTML5 地理定位

2017-08-31 19:14 183 查看
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.onload= getLocation;页面加载时候直接调用定义的函数

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

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

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

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

注意:高德地图提供key值获取到的实际坐标,用百度坐标反查会有偏移。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息