小白大人
小白大人
  • 发布:2019-10-28 00:17
  • 更新:2021-09-30 14:09
  • 阅读:2155

安卓App平台nvue页面 map 组件动态改变 polyline 属性不生效

分类:nvue
map

安卓App平台nvue页面 map 组件动态改变 polyline 属性不生效的问题,h5和小程序正常

2019-10-28 00:17 负责人:无 分享
已邀请:
小白大人

小白大人 (作者)

已解决,原来不能直接往polyline里面push数据

i***@zhuyunfeng.com

i***@zhuyunfeng.com - 90后

怎么解决的啊

  • 小白大人 (作者)

    之前polyline是个数组,我添加路线点的时候直接用push往里面添加数据,发现不行,我就新弄一个数组,把所有的路线点数据都放在新数组里面,然后直接赋值就可以了,比如之前的是:this.polyline.push(...),现在改成:this.polyline=新数组;你试试看行不行

    2019-11-26 23:58

i***@zhuyunfeng.com

i***@zhuyunfeng.com - 90后

我就是直接赋值的,vue下可以,nvue不可以

i***@zhuyunfeng.com

i***@zhuyunfeng.com - 90后

写在data里就可以,动态赋值不生效

i***@zhuyunfeng.com

i***@zhuyunfeng.com - 90后

可以了,感谢
this.polyline=新数组可以
我一直用的this.polyline[0]= 对象一直不可以

  • 阿米托福

    我的不行啊你怎样解决的 让我看看代码白

    2022-06-25 14:28

4***@qq.com

4***@qq.com - 前端

您好,按照您的解决方案,我尝试了以下方法,还是不行,可以看下是新数组中赋值的方法不对吗?提前说声谢谢
···
var polylines_pts = [{
points: []
}] // 新数组

//下面是通过定时获取的新坐标:
let LOCATION = {
longitude: coords.longitude,
latitude: coords.latitude
}; //新坐标

                    polylines_pts[0].points.push(LOCATION)  //push到新数组中  
                    this.polyline = polylines_pts;  // 用新数组中直接赋值,还是不行  
                    console.log(JSON.stringify(this.polyline))  

···

  • 小白大人 (作者)

    不知道您这个是不是对象数组嵌套的问题,你可以试试单独拿出来,不做嵌套,就直接一个数组试试,或者试试楼下官方给的解决方法

    2020-02-16 15:01

  • 4***@qq.com

    回复 小白大人: 感谢回复。

    楼下的试了,不行(不知道是不是我的问题,我在另外一个帖子回复了)。官方给的polylines的数据格式是:[{

    points:[{longitude:323, latitude:3232}]

    }],

    你是让我试试直接polylines = [{longitude:323, latitude:3232}]坐标点吗?你那边的polyline的数据格式是什么样的?

    2020-02-18 11:23

  • 小白大人 (作者)

    回复 4***@qq.com: 你这个polylines 数组里多放几组数据看看,你这只有一个点,会不会是这个原因不能生成路线啊

    2020-02-21 00:21

  • 小白大人 (作者)

    回复 4***@qq.com:

    var a=[

    {latitude:22.525189398393092,longitude:114.03538902763368},

    {latitude:22.52373,longitude:114.03847},

    ]

    _this.map_polyline=

    [{

    points:a,

    color:"#007eff",

    width:5,

    borderWidth:1,

    borderColor:"#007eff",

    dottedLine:true

    }];

    2020-02-21 00:22

  • 4***@qq.com

    回复 小白大人: 感谢回复,我的通过push,动态push点的,会有很多点。你那边的polyline跟我的数据结构一样吗?

    2020-02-21 18:03

  • 小白大人 (作者)

    回复 4***@qq.com: 上面的map_polyline就是我的数据结构

    2020-02-21 20:07

  • jeawy

    回复 小白大人: 谢谢,我之前用_this.map_polyline[0].points = 都不行。不知道官方会不会修复这个问题,最新的hbuilderx都没有修复

    2020-03-12 21:53

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

参考下面代码

<template>      
    <view class="approve">      
        <map :markers="markers"></map>    
    </view>      
</template>      

<script>      
    export default {      
        data() {      
            return {      
                covers:[],    
            };    
        },    
        computed:{    
            markers() {// 改成计算属性    
                return this.covers.slice(0);    
            }    
        },    
        onLoad() {    
            this.covers.push({}); 修改    
        }    
    }    
</script>
小臂宰治

小臂宰治

我也遇到了,小程序更新polyline可以实时刷新,app端不行。
测试了下,在app端好像是页面不刷新的问题?
我在map组件下放了两个button,按钮a和按钮b,a有一个控制禁用的变量(disabled属性的变量),按钮b按下的事件是改变这个变量。相当于按下b,a按钮由禁用改为启用,或由启用改为禁用。通过这个来强制刷新页面,就能在map上看到更新的线段。

  • 小臂宰治

    官方修复了....

    2020-04-24 11:44

  • 1***@qq.com

    回复 小臂宰治: 修复了吗?我通过创建新的数组赋值给polyline是可以的,但是页面中是有两条线的,一条一开始就会绘制完成,后一条每秒在前一条取一个点绘制覆盖上新的颜色线条;

    问题是;我通过新数组页面会卡死,原因可能是一开始的那一条线一直在重复绘制

    2020-06-12 11:37

z***@126.com

z***@126.com - QQ:212329852

----------------代码----------------------------------------
that.polylines.push(
{
points:new_arr,
arrowLine:true
}
)

console.log(that.polylines)
----------------打印结果--------------------------------
[{
"points": [{
"longitude": 116.397576,
"latitude": 39.906892
}, {
"longitude": "116.397539",
"latitude": "39.907478"
}, {
"longitude": "116.399366",
"latitude": "39.907539"
}, {
"longitude": "116.401562",
"latitude": "39.907656"
}],
"arrowLine": true
}]

楼主大大可以帮我看下这个 没有变化

该问题目前已经被锁定, 无法添加新回复