重新写一个方法 用一个按钮来触发修改lnglat也没有用

- 发布:2024-01-10 14:00
- 更新:2024-01-10 16:36
- 阅读:221
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 22H2
HBuilderX类型: 正式
HBuilderX版本号: 3.98
第三方开发者工具版本号: Stable 1.06.2308310
基础库版本号: 3.1.4
项目创建方式: HBuilderX
操作步骤:
预期结果:
可以跳转到目标坐标点
可以跳转到目标坐标点
实际结果:
没有跳转到目标坐标点
没有跳转到目标坐标点
bug描述:
<map ref="map" class="map" id="map" :latitude="latitude" :longitude="longitude" scale="18" show-location="true"
:enable-satellite="isWXMap" @tap="bindMap" :scale="zoom" @regionchange="changeRegion" :polygons="polygons"
:markers="markers" @markertap="clickMarker" :circles="nearbyCircle"></map>
以上是map标签的参数
通过修改参数latitude,longitude所绑定的两个值 无法将视角跳转到所对应的坐标
以下是调用其函数的标签 是使用@click方法触发的
<view v-for="(item, index) in nowHouseList" :key="index" class="list-item" @click="toMyHouseLocation(item)">
</view>
以上标签触发了toMyHouseLocation方法
此方法可以正常取到nowHouseList中的值 也可以正常打印
toMyHouseLocation(option) {
this.bdcdyh_position = option.RealEstateNumber // 切换被选中的房屋
let lnglat = this.wgs84togcj02(option.lnglat[0], option.lnglat[1])
console.log('lnglat', lnglat) // 可以正常打印
// 111.9730561328634 27.69541411272474 参考坐标
// 跳转到目标位置
this.longitude = lnglat[0]
this.latitude = lnglat[1]
console.log('location', this.longitude, this.latitude) // 发现打印出来的是修改后的值
},
补充: 使用其他方法修改lnglat值后 此方法再次修改就可以使用了 但是使用一次 之后重复触发此方法又会失效
3 个回复
最佳回复
2***@qq.com (作者)
已解决 lnglat虽然可以设置地点 但是无法根据地图中心点自动变化 如果需要重新返回原来的值 那么修改一下值的精度就可以了加一位精度 或者减一位精度
套马杆的套子 - 没有解决不了的问题,只有解决不完的问题
map 标签创建的地图是基于微信小程序原生的地图组件,它的属性是只读的
uni.createMapContext(mapId,this)里moveToLocation这个方法,是可以移动的
2***@qq.com (作者)
请查看刚刚我更新的补充 在最下面 同样是使用修改this.longitude和this.latitude 任然可以改变中心坐标点 当然 其他的改变坐标我也是这么写的 也可以改变
2024-01-10 14:06
2***@qq.com (作者)
似乎找到原因了 我在onshow方法中调用了某个方法 此方法会自动改变lnglat的值 视角会跳过去 当我再次移动视角后 lnglat的值并没有改变 我仍然跳转的是该地点 所以导致无法跳转过去 现在的问题就是 为什么我移动视角后 map属性绑定的 lnglat没有发生改变
2024-01-10 14:30
2***@qq.com (作者)
至于为什么不用uni.createMapContext(mapId,this)里moveToLocation方法移动视角 是因为需求中有地图视野发生变化后触发的事件 使用moveToLocation时无法触发这个地图移动事件 所以只使用的<map>中的 :longitude和:latitude属性设置中心点 这个方法的缺点就是不会根据你的视角移动所改变 并且如果当前的值完全等于你下一次需要跳转的位置 则其不会发生任何改变 (或许是没有触发watch的机制) 所以需要手动减少或添加一位精度触发机制 就可以做到重复访问同一个地点了。 楼上说值是只读的 我不理解为什么说是只读的 而且此方法绑定数值后可以设置中心点坐标。 记录一下踩坑吧。。。