V3 验证没有问题
<template>
<view>
<map id="map1" show-location="true" :latitude="latitude"
:longitude="longitude" :markers="markers" @regionchange="onregionchange" @markertap="markertap">
<cover-image v-if="showCoverView" src="/static/logo.png"></cover-image>
</map>
<button @click="getCenterLocation">getCenterLocation</button>
<button @click="getRegion">getRegion</button>
<button @click="resize">size</button>
<button @click="updateMarker">update marker</button>
<button @click="test">test</button>
</view>
</template>
<script>
export default {
data() {
return {
showCoverView: true,
latitude: 39.989631,
longitude: 116.481018,
markers: [{
id: 110,
iconPath: '/static/logo.png',
latitude: 39.989631,
longitude: 116.481018,
}]
}
},
onReady() {
this.mapContext = uni.createMapContext("map1", this);
},
methods: {
test() {
this.showCoverView = !this.showCoverView;
},
resize() {
this.mapWidth = 320;
this.mapHeight = 200;
},
markertap(e) {
console.log(e.detail.markerId);
},
updateMarker() {
this.$set(this.markers, 0, {
id: 110,
iconPath: '/static/logo.png',
latitude: 39.989631,
longitude: 116.581018,
})
},
onregionchange(e) {
console.log(JSON.stringify(e.detail));
},
getCenterLocation() {
this.mapContext.getCenterLocation({
success: (res) => {
console.log("getCenterLocation");
console.log(res);
}
})
},
getRegion() {
this.mapContext.getRegion({
success: (res) => {
console.log("getRegion");
console.log(res);
}
})
}
}
}
</script>
<style>
</style>
8 个回复
5***@qq.com
是啊,说好的只要写一次代码,每次都要写两次
asdasdsad
遇到同样的问题.
DCloud_uni-ad_HDX
App 平台 vue map 暂不支持 @regionchange,和 V3 没关系吧,目前已知问题@tap 无效,经纬度是指什么?
asdasdsad
就是开启V3后才获取不到经纬度和地址啥的.
2020-03-13 18:19
asdasdsad
打勾V3 和 取消勾V3 对比了且重新编译, 打上勾V3, 获取不到数据, 没有打勾一切正常.
2020-03-13 18:21
DCloud_uni-ad_HDX
回复 asdasdsad: 这个 uni.getLocation(OBJECT)吗
2020-03-13 18:24
asdasdsad
回复 DCloud_uni-ad_HDX: 不是,是map组件,具体页面逻辑可以查看这个,https://ext.dcloud.net.cn/plugin?id=1133
2020-03-13 18:26
asdasdsad
回复 DCloud_uni-ad_HDX: V3模式, map组件, 怎么移动视野,都无法触发@regionchange, 去掉V3模式一切正常
2020-03-13 18:28
DCloud_uni-ad_HDX
回复 asdasdsad: 这个是三方开发者提供的 试试 uni.ChooseLocation
2020-03-13 18:29
asdasdsad
回复 DCloud_uni-ad_HDX: 不是三方问题, 哎呀, 单纯用map组件 ,去移动视野, @regionchange='mapChange'绑定的方法也无法触发,打印都不出来....mapChange(e) {
console.log(e)}
2020-03-13 18:31
DCloud_uni-ad_HDX
uni.ChooseLocation() app平台使用nvue重构了,打开速度更快,优化UI交互
2020-03-13 18:31
asdasdsad
回复 DCloud_uni-ad_HDX: 是vue页面,不是nvue
2020-03-13 18:32
DCloud_uni-ad_HDX
预计下周修复
2020-03-13 18:34
5***@qq.com
回复 DCloud_uni-ad_HDX: 还有我发现只要用到centerAndZoom或者setZoom后,onstatuschanged就无效了
2020-03-14 08:42
DCloud_uni-ad_HDX
回复 5***@qq.com: 今天发布2.6.6修复此问题
2020-03-17 10:27
asdasdsad
回复 DCloud_uni-ad_HDX: 请问 修复了吗, Alpah还没看到更新
2020-03-19 12:04
4***@qq.com
回复 DCloud_uni-ad_HDX: 为什么APP中type的值变成regionchange,小程序是begin和end
2020-04-01 09:21
DCloud_uni-ad_HDX
HBuilderX 2.6.6+ 已修复
1***@qq.com
现在hbuilderX已经更新到2.6.7了,这个bug也没修复好呀
2020-03-27 16:39
DCloud_uni-ad_HDX
HBuilderX 2.6.6+ 已修复
1***@qq.com
现在hbuilderX已经更新到2.6.7了,这个bug也没修复好呀
DCloud_uni-ad_HDX
是否使用了自定义基座,如果是需要更新,或提供一个复现问题的简单工程
2020-03-27 18:26
asdasdsad
我测试没问题了呀。
2020-03-28 00:32
1***@qq.com
回复 asdasdsad: 取得e里面那个值?
2020-03-28 17:26
1***@qq.com
回复 DCloud_uni-ad_HDX: 没有,是取e里面的哪个属性,不用v3取的是e.type,我看@controltap="bindcontroltap"里面取的都变了,在小程序里面取e.controlId,在v3里面要取e.detail.id,不知道这个 @regionchange="onregionchange"在v3中该取哪个
2020-03-28 17:31
1***@qq.com
回复 asdasdsad: 麻烦老哥能帮忙指点下么,非让我去掉V3么
2020-03-28 22:22
asdasdsad
回复 1***@qq.com: regionchange打印的type
2020-03-30 11:25
asdasdsad
回复 DCloud_uni-ad_HDX: 好像是还有问题,@regionchange 无论怎么移动map组件,经纬度都是不变的.
let mapCtx = uni.createMapContext('map')
mapCtx.getCenterLocation({
success:res=>{
console.log(res)
}
})
2020-03-30 11:33
DCloud_uni-ad_HDX
回复 1***@qq.com: @controltap 和小程序一样的,要以小程序的真机为准 e.detail = {controlId},@regionchange app-vue 目前不支持type,app-nvue 和微信小程序一致
2020-03-30 11:34
asdasdsad
回复 asdasdsad:V3 vue页面
2020-03-30 11:40
1***@qq.com
回复 asdasdsad: 工作人员都说不行了,你确定你在v3下取到了值么,我的怎么取不到呀,感觉要去掉V3了
2020-03-30 19:05
asdasdsad
回复 1***@qq.com: 试了下,nvue页面, V3模式, regionchange 的值是 e.detail.type
2020-03-30 20:37
1***@qq.com
回复 asdasdsad: 我这边是undefined
2020-03-31 15:40
DCloud_uni-ad_HDX
回复 1***@qq.com: 看文档注意事项 vue 页面 regionchange 没有类型回调,nvue 支持
2020-04-02 20:47
7***@qq.com
Hbuilder X 2.6.11.20200409 问题依旧
V3编译模式 @regionchange 移动地图 然年 getCenterLocation获取屏幕中心坐标 还是不行
还是只有关闭V3编译模式,才能正常获取~
DCloud_uni-ad_HDX
请提供示例工程,运行到哪个平台
2020-04-10 13:10
7***@qq.com
回复 DCloud_uni-ad_HDX: 忘记写了,运行在APP,是VUE的文件 如果把文件改成NVUE,移动之后获取正常,但是之前的样式什么的就全部乱了。。。
2020-04-10 14:27
DCloud_uni-ad_HDX
V3 验证没有问题
7***@qq.com
测试了下上面代码(Hbuilder X 2.6.11.20200409 、APP、Android)
加了个获取地图中心的代码(项目APP,全部VUE页面,以前可以正常获取中心位置,现在V3编译之后不行)
onregionchange(e) {
console.log("onregionchange=>",JSON.stringify(e.detail));
this.mapContext.getCenterLocation({
type: 'gcj02',
success: (res) => {
console.log("region getCenter=>",res.latitude,res.longitude);
}
})
},
==================================
=>现在如果是 V3编译 VUE页面
onregionchange(e) {
console.log("onregionchange=>",JSON.stringify(e.detail));
//地图中心坐标
var latitude = e.detail.center.latitude;
var longitude = e.detail.center.longitude;
},
=>现在如果是 V3编译 NVUE页面
onregionchange(e) {
console.log("onregionchange=>",JSON.stringify(e));
this.mapContext.getCenterLocation({
type: 'gcj02',
success: (res) => {
console.log("region getCenter=>",res.latitude,res.longitude);
//地图中心坐标
var latitude = res.latitude;
var longitude = res.longitude;
}
})
},
下面输出的日志----------------------------
=>【VUE页面】 getCenterLocation 输出的坐标是初始坐标(29.557244,106.577054)一直不会变(应该是个BUG)
onregionchange 的 e.detail
输出 {"center":{"latitude":29.553864,"longitude":106.573859},"bounds":{"southwest":{"latitude":29.550593,"longitude":106.568216},"northease":{"latitude":29.557127,"longitude":106.57951},"northeast":{"latitude":29.557127,"longitude":106.57951}},"zoom":16,.....
移动地图
15:39:38.523 onregionchange=>, {"latitude":29.557244,"longitude":106.577054}
15:39:38.603 region getCenter=>, [Number] 29.557244 , [Number] 106.577054
移动地图
15:40:01.191 onregionchange=>, {"latitude":29.555334,"longitude":106.56851}
15:40:01.210 region getCenter=>, [Number] 29.557244 , [Number] 106.577054
移动地图
15:40:47.741 onregionchange=>, {"latitude":29.550377,"longitude":106.55859}
15:40:47.760 region getCenter=>, [Number] 29.557244 , [Number] 106.577054
=>【NVUE页面】 getCenterLocation 正常改变
onregionchange 的 e.detail 没有,只能输出 e 但是e里面没有center坐标
console.log("onregionchange=>",JSON.stringify(e));
{"type":"begin","timeStamp":1586506976651,"target":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{}} at pages\dynamic\add-dynamic-location-map.nvue:60
移动地图
15:46:30.539 onregionchange=>, {"type":"begin","timeStamp":1586504790848,"target":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{}}
15:46:30.559 region getCenter=>, [Number] 29.55711766138007 , [Number] 106.57671775883254
移动地图
15:46:30.865 onregionchange=>, {"type":"end","timeStamp":1586504791169,"target":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{"rotate":0,"skew":0},"causedBy":"drag"}
15:46:30.885 region getCenter=>, [Number] 29.554735478962282 , [Number] 106.57306324911228
移动地图
15:48:00.215 onregionchange=>, {"type":"begin","timeStamp":1586504880526,"target":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"currentTarget":{"id":"map1","dataset":{},"offsetLeft":0,"offsetTop":0},"detail":{}}
15:48:00.234 region getCenter=>, [Number] 29.554717979863074 , [Number] 106.57298948836562
2020-04-10 16:56
1***@qq.com
回复 7***@qq.com: 编辑器更新到2.7.14之后出现了你的问题,你怎么解决的,有办法没?
2020-07-16 18:53