码迷,mamicode.com
首页 > 其他好文 > 详细

关于自动定位

时间:2020-04-05 09:48:03      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:服务器   次数   ref   数据   com   vue   get   his   关于自动   

一般分两个场景,PC端和移动端定位。

移动端比较方便,因为GPS,北斗,可以实现高精度定位,实在不行还有基站定位,或者网络定位。

之前做Android的APP时用了百度的定位API,申请一个应用Key就好,也有通过哪种方式定位的选项,比较方便。

如果是小程序,可以采用腾讯的API,获取经纬度,再转成地址,也不复杂。

在PC端,不小心入了一个坑,就是通过IP定位比较复杂,最终选择百度SDK的方式解决。

补充,H5也有一个函数navigator.geolocation.getCurrentPosition(),不过不好用。

可以参考:https://blog.csdn.net/liuxiaochang_2011/article/details/86537328

IP方案考虑过采用开源的ip和地址的映射包,也采用了淘宝ip等方式,前者需要定期数据更新,后者有访问次数的限制,多用几次就gg,遂放弃。

最主要还是IP定位不太准确,有的用代理,有的只能定位到根服务器的位置。

下面贴出百度SDK的解决方案。

现在index.html里添加

<script src="http://api.map.baidu.com/api?v=3.0&ak=XXXX"></script>

然后在vue的methods里添加

getlocation(){
      this.loading = true;
      var geolocation = new BMap.Geolocation();
      // 开启SDK辅助定位
      geolocation.enableSDKLocation();
      geolocation.getCurrentPosition(function(r) {
        if (this.getStatus() == BMAP_STATUS_SUCCESS) {
//          var mk = new BMap.Marker(r.point);
          alert(‘您的位置:‘ + r.point.lng + ‘,‘ + r.point.lat);
          this.loading = false;
          this.form.location = ‘您的位置:‘ + r.point.lng + ‘,‘ + r.point.lat;
//          $("#mylocation").text("自动定位");
        } else {
          alert(‘failed状态‘ + this.getStatus());
          this.loading = false;
        }
      });
    },

  

关于自动定位

标签:服务器   次数   ref   数据   com   vue   get   his   关于自动   

原文地址:https://www.cnblogs.com/marszhw/p/12635586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!