VUE中cesium 添加polygon 报错

vue3.0  添加entity polygon  hierarchy属性使用回调函数CallbackProperty报错

 

var PolygonPrimitive = (function () {
    function _(hierarchy) {
        this.options = {
            polygon: {
                show: true,
                hierarchy: [],
                material: Cesium.Color.CORNFLOWERBLUE
            }
        };
        this.hierarchy = hierarchy;
        this._init();
    }
    _.prototype._init = function () {
        var _self = this;
        var _update = function () {
            return _self.hierarchy;
        };
        //实时更新polygon.hierarchy
        this.options.polygon.hierarchy = new Cesium.CallbackProperty(_update, false);
        const viewer = window.earth
        viewer.entities.add(this.options);
    };
    return _;
})();
export { PolygonPrimitive }

调试到源码 是在cesium  添加Polygon的时候出错了 PolygonGeometry.js中 var outerPositions = polygonHierarchy.positions;这个出错了。排查了下原因是因为polygon = new PolygonPrimitive(points) 这样传入的类型有问题,不是一个PolygonHierarchy类型,没有positions属性,而是一个三维坐标的数组,所以在传入的时候需要进行格式强制转换 polygon = new PolygonPrimitive(new Cesium.PolygonHierarchy(points)),但是polyline的话是可以直接传入坐标

之后还发现个奇怪的事,在vue中需要强制转换,在原生js中直接传入是可以的polygon = new PolygonPrimitive(points) 没有深究了

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue,当使用v-for指令时,可能会遇到报错的情况。根据引用和引用[2]的内容,可能的报错原因是使用v-for时遗漏了key属性或者key属性的值不唯一。 为了解决这个问题,可以参考引用的解决方案,即将key属性的值改为index或者id,确保key值的唯一性。可以使用数组的索引作为key值,或者使用具有唯一标识的属性作为key值,这样可以避免重复的key值导致报错。 总结起来,要解决Vuev-for报错的问题,需要确保key属性的值是唯一的。这样可以避免报错,并且提高性能,减少DOM的渲染。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue v-for 使用问题整理小结](https://download.csdn.net/download/weixin_38727694/12938486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue项目使用v-for的方法莫名提示错误](https://blog.csdn.net/qq2793191649/article/details/82660816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue v-for 报错](https://blog.csdn.net/wuxueru100200/article/details/116015647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值