cesium采用primitive方式加载geojson数据

cesium加载geojson数据有自带的接口GeoJsonDataSource和演示 示例,使用的是entity方式来加载数据,而entity封装的是primitive,所以想用原生的primitive方式来加载geojson数据试试。使用的数据是全球国家区划的json,在这里分别给出两种方式的代码和效果。

  1. 自带接口GeoJsonDataSource(entity方式)
    主要代码
var geojsonOptions = {clampToGround : true //使数据贴地
};
var entities;
var promise =Cesium.GeoJsonDataSource.load('../data/json/world.json', geojsonOptions);
promise.then(function (dataSource) {viewer.dataSources.add(dataSource);entities =dataSource.entities.values;for (var i = 0; i < entities.length;i++) {var entity = entities[i];// 赋随机颜色var color=Cesium.Color.fromRandom({alpha: 0.7});entity.polygon.fill = true;entity.polygon.material = color;entity.polygon.outline = true;entity.polygon.outlineColor = Cesium.Color.YELLOW;}
});

效果

  1. 原生的primitive方式
    主要代码
var urlpath =  "../data/json/world.json"
$.get(urlpath, function (data) {const josnN = JSON.parse(data);const features = josnN.features;addDataToGlobe(features);
})
function addDataToGlobe(features){const instances = [];for(let i=0; i<features.length; i++){for(let j=0; j<features[i].geometry.coordinates.length; j++){const polygonArr = features[i].geometry.coordinates[j].toString().split(',');const polygon = new Cesium.PolygonGeometry({polygonHierarchy : new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray(polygonArr)),vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT});const geometry = Cesium.PolygonGeometry.createGeometry(polygon);instances.push(new Cesium.GeometryInstance({geometry : geometry,attributes : {color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromRandom({alpha : 0.7})),},}));}}const primitive = new Cesium.Primitive({geometryInstances : instances,appearance :  new Cesium.PerInstanceColorAppearance({ // 为每个instance着色translucent : true,closed : false}),asynchronous : false,  // 确定基元是异步创建还是阻塞直到准备就绪});scene.primitives.add(primitive);
}

效果

对比两种加载方式发现:
1、第二种加载速度比第一种快很多
2、第一种方式加载后,移动缩放地球有延迟现象,比较卡。第二种方式无。
3、第二种方式加载后的效果视觉上比第一种好
以上结论仅作参考,不同数据得到的结果可能不同

cesium采用primitive方式加载geojson数据相关推荐

  1. ceisum 加载geojson,使用 Cesium 动态加载 GeoJSON 数据

    前言 需求是这样的,我需要在地图中显示 08 年到现在的地震情况,地震都是发生在具体的时间点的,那么问题就来了,如何实现地震情况按照时间动态渲染而不是一次全部加载出来. 一. 方案分析 这里面牵扯到两 ...

  2. ThreeJS加载geojson数据实现3D地图

    ThreeJS加载geojson数据实现3D地图,主要通过借助geojson地理信息数据转摩托尔坐标实现,中间借助了d3.js的地图处理方法,最后通过threejs渲染到页面上: 通过平台获取GeoJ ...

  3. ceisum 加载geojson,webgl 加载geojson数据没有贴地

    我有一份geojson数据: const smc={"type":"FeatureCollection", "features": [ {& ...

  4. Cesium加载GeoJson数据(shp转化的json数据)

    1.shp转换成json格式 此处整理了两种shp转为json格式的方式:一是使用工具:二是使用ArcGIS进行转换. 1.1.ArcGIS转换 1.使用ArcGIS将shp文件的地理坐标设置为WGS ...

  5. Android --- RecycleView下拉刷新,item中的图片闪烁,图片采用Glide方式加载

    错误代码: Glide.with(context).load(QiNiuRef.domain + "/"+item.get("teacherImageId")) ...

  6. Cesium开发基础笔记总结(加载影像、加载地形数据、加载矢量)

    Cesium开发基础笔记总结 学习总结于GIS李胜老师博客 Cesium开发基础01加载影像数据 加载影像数据 Cesium中的影像图层类: 无论是二维地图还是三维地图,如果缺少了底图影像或电子地图, ...

  7. Cesium加载大数据量地下管线

    Cesium加载大数据量地下管线 Cesium优化加载 管线加载 管井.摄像头.交通信号灯等模型加载 与倾斜摄影模型结合加载 Cesium优化加载 管线.管井.路灯.交通信号灯.接电箱等模型使用Pri ...

  8. cesium加载GeoJSON

    cesium加载GeoJSON 介绍GeoJSON GeoJson是Json数据(键值对),它是针对地理数据的一个变种 具体的参考文档:GeoJSON 面要素 多边形json数据 {"typ ...

  9. 不同API加载geojson

    1.mapboxgl:在底图上叠加geojson格式的矢量数据切片 <!DOCTYPE html> <html> <head><meta charset='u ...

最新文章

  1. FPGA之道(75)静态时序分析(一)基本概念介绍
  2. 51CTO博客弹出框精彩博文记录【2013年第二季度】
  3. 为什么Control类提供了Invoke和BeginInvoke机制
  4. 转载--SqlAlchemy ORM 学习
  5. 如何在ASP.NET Core中使用SignalR构建与Angular通信的实时通信应用程序
  6. python 字体_python docx字体设置
  7. 蛇形数组打印(两种形式)
  8. 【计算机科学基础】存储程序原理
  9. Python 标准库之单元测试框架 -- unittest
  10. Android ListView下拉与上拉刷新加载更多数据 二
  11. Spring事件机制Event源码解析(未完待续)
  12. MVC5 Entity Framework学习参加排序、筛选和排序功能
  13. 计算机科学导论的试题,《计算机科学导论》期末考试试题
  14. IEC 61850标准中ACSI映射实现研究
  15. 计算机应用基础第一章ppt,计算机应用基础第一章课件.ppt
  16. 2014版C 语言程序设计基础,清华大学出版社-图书详情-《C/C++程序设计基础与实践教程》...
  17. mysql 父子关系查询_如何让MySQL中单句实现无限层次父子关系查询
  18. iPhone 检测 iPhone X 设备的几种方式和分辨率终极指南
  19. yii mysql gii_Yii2.0开发——使用Gii生成代码的简单实践
  20. 软重启、硬重启、重启、重置概念介绍

热门文章

  1. 三、Fiddler抓包——Fiddler过滤器-Fiddler抓包数据筛选
  2. HBuilder发布H5,nginx部署
  3. Java使用RSA算法实现安全登录
  4. Java实现的信号灯
  5. 曲线拟合的最小二乘原理
  6. ocmt:高维固定效应模型的变量筛选问题
  7. 带问题重读ijkPlayer
  8. proteus元件大全 仿真元件 电子元器件英文缩写
  9. Go全局唯一ID选型集合
  10. 计算机网络节点分为三类,计算机网络技术1—2——3章