微信公众号H5项目中用高德地图实现用户定位(vue)

2 篇文章 0 订阅
2 篇文章 0 订阅

遇到的问题:用高德官网的方法去定位时发现,ios可以在http的网址定位,而安卓手机只能在https的网址定位,这个也是很奇葩,查了官网文档说,是因为浏览器禁止了非安全域的定位请求。但是我们的站点就是https的,总之就是定位不成功,但是没有解决不了的bug,最后成功定位的实现思路就是,利用公众号开发的api先拿到用户的地理位置,转化为高德的坐标,再添加一个marker来实现

// 定位到用户当前位置
    handleLocation() {
      var _this = this;
      // 公众号开发的api
      wx.getLocation({
        type: "wgs84",
        success: function(res) {
          // 用户同意后,将获取的位置基础信息(经度和纬度信息)请求到控制器
          //控制器中利用高德的api请求返回地理位置信息数据
          // console.log(res);
          _this.getLocation(res.latitude, res.longitude);
        },
        cancel: function(res) {
          // alert("用户拒绝授权获取地理位置");
          _this.$toast({ msg: "拒绝授权获取地理位置会影响功能使用" });
        }
      });
    },
	getLocation(latitude, longitude) {
	      this.$toast({ msg: "正在定位..." });
	      var _this = this;
	      var lnglat = [longitude, latitude];
	      // 坐标转换,构造点标记
	      AMap.convertFrom(lnglat, 'gps', function(status, result) {
	        console.log("result==>", result);
	        if (result.info === "ok") {
	          var resLnglat = result.locations[0];
	          // 定点的图标
	          var marker = new AMap.Marker({
	            position: resLnglat,
	            icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png"
	          });
	          _this.map.add(marker);
	          _this.map.setFitView();
	        }
	      });
	    },

如果在看的你有什么更好的实现方法,欢迎留言交流

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值