uni-app map marker点击没有返回标记点经纬度

uni-app map marker点击没有返回标记点经纬度

信息类别 内容
产品分类 uniapp/H5
PC开发环境 Windows
操作系统版本 11
HBuilderX类型 正式
HBuilderX版本 3.2.6
浏览器平台 Chrome
项目创建方式 HBuilderX

操作步骤:

  • 调用markertap

预期结果:

  • 返回markerId 经纬度

实际结果:

  • 只返回markerId

bug描述:

  • marker点击没有返回标记点经纬度

更多关于uni-app map marker点击没有返回标记点经纬度的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app map marker点击没有返回标记点经纬度的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app的map组件中,markertap事件返回的对象默认只包含markerId,这是当前设计的正常行为。若需获取标记点的经纬度,需要在点击事件中根据markerId自行关联数据。

解决方案:

  1. 在定义markers数组时,为每个marker对象存储经纬度信息(如扩展自定义字段)。
  2. markertap事件处理函数中,通过返回的markerId查找对应的marker对象,从而获取经纬度。

示例代码:

// 在data中定义markers
data() {
  return {
    markers: [{
      id: 1,
      latitude: 39.909,
      longitude: 116.39742,
      title: '地点A',
      customData: { lat: 39.909, lng: 116.39742 } // 扩展字段存储经纬度
    }]
  }
},
methods: {
  onMarkerTap(e) {
    const markerId = e.markerId
    const targetMarker = this.markers.find(marker => marker.id === markerId)
    if (targetMarker) {
      console.log('纬度:', targetMarker.latitude)
      console.log('经度:', targetMarker.longitude)
      // 或使用自定义字段
      console.log('自定义经纬度:', targetMarker.customData)
    }
  }
}
回到顶部