本文主要是介绍Cesium中MultiPolygon数据处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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数据处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!