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自行关联数据。
解决方案:
- 在定义markers数组时,为每个marker对象存储经纬度信息(如扩展自定义字段)。
- 在
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)
}
}
}

