taro 小程序自定义地图选点功能

效果:
在这里插入图片描述

1、添加中心点 icon, 保证icon 处于地图中间

在这里插入图片描述

  .map-box {
    width: 100vw;
    height: 36vh;
    position: relative;
    // 中心icon
    .center-icon-box {
      position: absolute;
      top: calc(50% - 30rpx); // 保证icon 处于地图中心点
      left: 50%;
      transform: translate(-50%, -50%);
      .icon {
        width: 72px;
        height: 72px;
      }
    }
  }

效果:
在这里插入图片描述

2、地图移动后,重新获取当前中心点坐标。 监听 map regionChange 事件
      <map
        id="searchMap"
        style="height: 100%; width: 100%"
        :latitude="state.latitude"
        :longitude="state.longitude"
        :show-location="true"
        @regionChange="regionChange"
      >
        <!-- map 控制器 -->
        <!-- 中心点 -->
        <cover-view class="center-icon-box">
          <cover-image :src="iconPath" class="icon" />
        </cover-view>
      </map>

在这里插入图片描述
监听到地图视野改变后,通过getCenterLocation 方法获取到中心点坐标:
在这里插入图片描述

3、通过腾讯地图 jssdk 提供的 reverseGeocoder 方法,将坐标转换为地址。 设置参数 get_poi = 1, 返回推荐周边地址列表。
export const getAddressByLocation = (location: string) => {
  qqMapSdk.reverseGeocoder({
    location: location || '',
    get_poi: 1, // 返回回周边POI列表
    poi_options: 'address_format=short&radius=3000&policy=2',
    success: (res) => {
      console.log(res.result)
      // const { address = '', formatted_addresses } = res.result
      // const addressText = `${address} ${formatted_addresses.recommend}`
    },
  })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值