uni-app map缩放时 markers不会变化
uni-app map缩放时 markers不会变化
项目属性 | 值 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | windows7 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.3.2 |
手机系统 | iOS |
手机系统版本号 | iOS 14 |
手机厂商 | 苹果 |
手机机型 | iphoneX |
页面类型 | nvue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
<template>
<div>
<map latitude="39.90792" longitude="116.397517" :markers="markers" :style="{height:height+'px',width:width+'px'}"></map>
</div>
</template>
<script>
export default {
data() {
return {
height:'',
width:'',
markers:[{
id:'1',
latitude:'39.90792',
longitude:'116.397517',
}]
}
},
onLoad() {
// 获取手机的物理系高度
uni.getSystemInfo({
success:res=>{
this.height=res.windowHeight
this.width=res.windowWidth
}
})
},
}
</script>
预期结果:
在ios上缩放时会有偏移,markers随着缩放变化
实际结果:
在ios上缩放时会有偏移,markers不会随着缩放变化
bug描述:
map缩放时,markers不会变化(实际查看上感觉像是markers偏移了),附件内有视频
更多关于uni-app map缩放时 markers不会变化的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
未设置标注图时使用的是高德SDK 内置的 marker 标注图,这个图片下面带了透明区域,图片高度实际上是肉眼看到的大头针的两倍,需要设置 marker 的 anchor
anchor: {
x: 0.5,
y: 0.5
},
更多关于uni-app map缩放时 markers不会变化的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在uni-app的map组件中,iOS平台上确实存在缩放时markers位置偏移的问题。这是由于iOS原生地图组件在缩放时markers的定位计算方式与Android不同导致的。
解决方案建议:
- 可以尝试在marker对象中添加
fixed
属性设置为true:
markers:[{
id:'1',
latitude:'39.90792',
longitude:'116.397517',
fixed: true
}]
- 或者监听map的
regionchange
事件,在缩放时重新计算markers位置:
<map @regionchange="handleRegionChange" ...></map>
methods: {
handleRegionChange(e) {
if(e.type === 'end') {
// 重新设置markers
}
}
}
- 也可以考虑使用
include-points
属性来保持地图区域和markers的同步:
<map :include-points="markers" ...></map>