欢迎光临散文网 会员登陆 & 注册

Cesium中MultiPolygon数据处理

2022-10-27 17:14 作者:地理信息技术杂谈  | 我要投稿

Cesium支持加载geojson的数据源,加载成功后,Cesium会创建对应的实体(Entity)对象,在地图上进行显示。

在加载具有MultiPolygon空间类型的geojson数据时,获得的实体(Entity)数量和geojson中数据条数并不对应。

MultiPolygon类型的geojson数据格式说明,参见下列网址:
https://tools.ietf.org/html/rfc7946#section-3.1.7


Cesium加载geojson数据源

Cesium加载geojson的数据代码示例:

     let promise = Cesium.GeoJsonDataSource.load(_geojsondata);

      promise

    .then(function (dataSource) { 

      viewer.dataSources.add(dataSource);

      let entities = dataSource.entities.values;

     //根据不同类型进行属性区别设置

      }

加载的过程,Cesium自动判断geojson的空间数据类型:点、线、面,在异步的实体(Entity)加载过程中,才会对点、线、面的实体进行区别属性设置。

Cesium中MultiPolygon数据

加载MultiPolygon数据时,Cesium中实体的数量会和geojson中数据源的条数有所不同,MultiPolygon类型feature中,可能存在多个Polygon面状数据,Cesium会分开进行实体创建,导致会多一些实体,这在获取面状数据的属性时,需要对多个面的feature进行判断,按照实际面的数量进行属性赋值,这样在地图获取时,才能获取到对应正确的。单个面的数据,有的存在hole(挖洞),Cesium中实体对应写法是:

     polygon: {

          hierarchy: {

            positions: polygon,

            holes: holes

          },

  这样才能显示挖洞的效果。

Cesium中MultiPolygon数据处理的评论 (共 条)

分享到微博请遵守国家法律