美文网首页
cesium 多边形线类型引发的思考

cesium 多边形线类型引发的思考

作者: 纯爱枫若情 | 来源:发表于2022-04-29 14:56 被阅读0次

默认情况下,如果你用 entity 创建一个 rectangle 对象,你会发现他长下面这个样子。


20220426154332.png

rectangle 的边是沿着经纬线的。

但是如果你用 entity 创建一个 polygon 对象,你会发现,和 rectangle 长得不太一致,虽然,传入的坐标是一致的。

20220426154747.png

观察一下,我们会发现,polygon 的边并不是沿着经纬度生成的。

这样看好像不太直观,那我们把两个对象同时生成,就能更清楚的看出来差别了。

20220426155327.png

当然为了区分,我给 polygon 加了点透明度,能够看的更清楚些。

说来惭愧,很早接触 cesium 就发现了这个问题了,但是一直没静下心来仔细研究过这个问题。

恰逢最近在项目中有碰到这个问题,需要解决,于是就开始研究了一下缘由。

对于一个合格的程序员来说,碰到问题,当然要首先在网上搜一搜,看看有没有现成的解决方案。

毕竟,谁不想,“站在巨人的肩膀上”呢?

正如我所料,还真的找到了相关的讨论。

在 cesium 官方论坛发现了相关的话题:

Polygon vs rectangle curvature - CesiumJS - Cesium Community

有人问,为什么用矩形和多边形,绘制出来的样式不一致。

然后有人回复,因为两者的绘制方式不同,rectangle 是沿着经纬线绘制的,而多边形的边是沿着大地线绘制的。而且在后面,还友善的给了 github issue 链接地址,说官方正考虑增加多边形支持经纬线方式绘制这个功能。

不过我仔细一看时间,这个话题的讨论发生在 2016 年。


image.png

看到这里,不禁内心一喜,看来这功能,应该早就已经加进来了吧。

果不其然,顺着 issue 看过去,在 2019 年的时候,这个问题就被解决了。

Add Rhumb Line Support to Polygon and Polyline Geometries by shehzan10 · Pull Request #7492 · CesiumGS/cesium · GitHub

其实,只要你用的 cesium 的版本不低于 1.54 版本,默认情况下,就支持通过参数来控制多边形边的绘制方式了。


image.png

为了验证一下,我在 codepen.io 上创建了一个 demo:

ArcType

可以发现,当采用 RHUMB 类型的线的时候,确实多边形的边绘制方式也是沿着经纬线的。

其实写这篇文章的目的,并不单纯只是为了记录如何发现 cesium 里面多边形也是支持 Rhumb 类型这个事情。

其实是想感慨一下,很多时候,学习某个新的框架或者编程语言,都会遇到这样的困境。

很多时候,并不能理解,为什么有这个 api,为什么有这个属性, 这些功能的作用到底是啥,只有真正的到了对应的应用场景的时候,才会突然明白,其作用是为何。

所以编程语言、框架乃至系统,才要不断地更新完善,因为会不断地有新的需求进来。而对于新的功能,也只有到需要面对的时候,能解决自己痛点的时候,才会明白的更透彻些。

毕竟,如果没有直接的接口能解决自己的需求,就得自己做对应的开发工作,来满足自己的需求了。

如果自己的需求被满足了以后,然后把对应的需求部分所做的工作贡献出来,回馈给社区,就能进一步推动产品的发展,让产品功能更丰富。

某种意义上来说,编程语言、框架何尝又不是一种产品呢?只不过,大多数情况下,我们都是这些产品的用户而已。

相关文章

  • cesium 多边形线类型引发的思考

    默认情况下,如果你用 entity 创建一个 rectangle 对象,你会发现他长下面这个样子。 rectang...

  • webgis —— 从指定层级开始显示某一张影像图

    思考 想必深入用过 cesium 的小伙伴都知道,cesium 可以支持加载很多不同类型的影像服务,呈现渲染在三维...

  • SVG

    矩形 圆形 椭圆 线 多边形

  • Cesium飞线

    在学习Cesium过程中,发现Cesium的Material可以自定义自己所需的材质,看到网上其他资源有实现城市飞...

  • 多段线切割多边形

    概述 多段线切割多边形,直观上来说首先就是求多段线与多边形之间的交点,然后利用这些交点与多边形顶点构成多边形,这样...

  • Postgis

    点 更新几何对象中心点 多边形 面积 点间距离(米) 类型 多边形内随机取点

  • foreach 引发的值类型与引用类型思考

    用都知道的一句话概括:“引用类型在堆上,栈上只保存引用;值类型即可存放于栈上也可存放于堆上,值类型变量直接存储值本...

  • 销售笔记——客户拜访2需求调研

    一、需求调研-问题的类型及目的 什么是好问题?能引发对方思考的问题 问题类型: 事实问题:what who whe...

  • 小米数据线引发的思考

    这其实是一个特别偶然的事件。 大胖在腊月二十八接了一个跨年的动画项目,第一次预演提交设定在大年初三。而碰巧大胖计划...

  • Cesium流动线纹理

    注:流动效果使用的图片是渐进色 1.扩展类PolylineTrailMaterialProperty (Cesiu...

网友评论

      本文标题:cesium 多边形线类型引发的思考

      本文链接:https://www.haomeiwen.com/subject/awesyrtx.html