uni-app 微信小程序使用map标签创建的地图 某个特定的触发方法修改latitude,longitude后 地图不会跳转过去
uni-app 微信小程序使用map标签创建的地图 某个特定的触发方法修改latitude,longitude后 地图不会跳转过去
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 22H2 | HBuilderX |
操作步骤:
- 重新写一个方法 用一个按钮来触发修改lnglat也没有用
预期结果:
- 可以跳转到目标坐标点
实际结果:
- 没有跳转到目标坐标点
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](/user/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值后 此方法再次修改就可以使用了 但是使用一次 之后重复触发此方法又会失效
更多关于uni-app 微信小程序使用map标签创建的地图 某个特定的触发方法修改latitude,longitude后 地图不会跳转过去的实战教程也可以访问 https://www.itying.com/category-93-b0.html
已解决 lnglat虽然可以设置地点 但是无法根据地图中心点自动变化 如果需要重新返回原来的值 那么修改一下值的精度就可以了加一位精度 或者减一位精度
更多关于uni-app 微信小程序使用map标签创建的地图 某个特定的触发方法修改latitude,longitude后 地图不会跳转过去的实战教程也可以访问 https://www.itying.com/category-93-b0.html
map 标签创建的地图是基于微信小程序原生的地图组件,它的属性是只读的
uni.createMapContext(mapId,this)里moveToLocation这个方法,是可以移动的
请查看刚刚我更新的补充 在最下面 同样是使用修改this.longitude和this.latitude 任然可以改变中心坐标点 当然 其他的改变坐标我也是这么写的 也可以改变
似乎找到原因了 我在onshow方法中调用了某个方法 此方法会自动改变lnglat的值 视角会跳过去 当我再次移动视角后 lnglat的值并没有改变 我仍然跳转的是该地点 所以导致无法跳转过去 现在的问题就是 为什么我移动视角后 map属性绑定的 lnglat没有发生改变
至于为什么不用uni.createMapContext(mapId,this)里moveToLocation方法移动视角 是因为需求中有地图视野发生变化后触发的事件 使用moveToLocation时无法触发这个地图移动事件 所以只使用的<map>中的 :longitude和:latitude属性设置中心点 这个方法的缺点就是不会根据你的视角移动所改变 并且如果当前的值完全等于你下一次需要跳转的位置 则其不会发生任何改变 (或许是没有触发watch的机制) 所以需要手动减少或添加一位精度触发机制 就可以做到重复访问同一个地点了。 楼上说值是只读的 我不理解为什么说是只读的 而且此方法绑定数值后可以设置中心点坐标。 记录一下踩坑吧。。。


