uniapp调用地图,进行位置查询,标记定位

这周开会又新增一个小功能,就是需要通过身份证号/手机号在地图查询(后台返回经纬度),标记位置,想着挺麻烦,做的时候发现没啥技术,分享给大家。



<map class="map" :longitude="longitude" :latitude="latitude" scale="16" :markers="markers" show-location="true"></map>
data() {
  return {
    longitude: "", // 当前位置经度
    latitude: "", // 当前位置纬度
    markers: [], // 获取位置的标记信息
  }
}
methods: {
  searchBtn(){
    let then = this;
    uni.getLocation({
      type: 'wgs84',
      geocode: true, //设置该参数为true可直接获取经纬度及城市信息
      success: function (res) {
        // res会返回当前经纬度信息之类,如果默认想展示当前位置,下面经纬度可直接使用res的值,如果默认展示指定位置,那就自定义经纬度即可;
        then.longitude = '116.407526';
        then.latitude = '39.904030';
        then.markers = [
          {
            title: '',
            latitude: then.longitude,
            longitude: then.latitude,
            height: 100,
            width: 100,
            iconPath: 'http://cdn.duanqinghua.com/duanqinghua/img/55.jpg'
          }
        ]
      }
    });
  }
}

然后每次查询,通过调后台接口,拿到对应经纬度,赋值给longitude和latitude,那么地图就会展示对应经纬度区域,如果同时想展示定位的图标,那就按上方方式给markers赋值,可标记多个位置。

(获取到数据后,最好不要直接给markers赋值,先let随便定义一个赋值,再将let定义的赋给markers,否则会出现不显示标记点现象)


本文链接:https://my.lmcjl.com/post/20010.html

展开阅读全文

4 评论

留下您的评论.