初识cesium----加载不同JSON格式例子

最近研究了几天cesium.js,有些入门级的收获,随手记录下来,方便以后来查阅!

cesium支持topojson,GEOjson和普通的json格式,下面展示三种不同的格式的例子

一、topojson

<body>
    <div id="cesiumContainer"></div>
    <script>
    //加载topojson
    var viewer = new Cesium.Viewer(‘cesiumContainer‘);
    var promise= viewer.dataSources.add(Cesium.GeoJsonDataSource.load(‘../../Apps/china.topojson‘, {
    stroke: Cesium.Color.BLACK,
    fill: Cesium.Color.RED,
    strokeWidth: 3,
    markerSymbol: ‘?‘
    }));
    viewer.flyTo(promise);
    </script>
</body>

二、GEOjson

<body>
    <div id="cesiumContainer"></div>
    <script>
    var viewer = new Cesium.Viewer(‘cesiumContainer‘);
 //Seed the random number generator for repeatable results.
    Cesium.Math.setRandomNumberSeed(0);
    var promise=Cesium.GeoJsonDataSource.load(‘../../Apps/testone.json‘);
    promise.then(function(dataSource) {
        viewer.dataSources.add(dataSource);
        var entities = dataSource.entities.values;
        var colorHash = {};
        for (var i = 0; i < entities.length; i++) {
            var entity = entities[i];
            var name = entity.name;
            var color = colorHash[name];
            if (!color) {
                color = Cesium.Color.fromRandom({
                    alpha : 1.0
                });
                colorHash[name] = color;
            }
            entity.polygon.material = color;
            entity.polygon.outline = false;
            entity.polygon.extrudedHeight =5000.0;
            }
        });
        viewer.flyTo(promise);
    </script>
</body>

三、普通json

<body>
  <div id="cesiumContainer"></div>
  <script>
    var viewer = new Cesium.Viewer(‘cesiumContainer‘);
    Cesium.Math.setRandomNumberSeed(0);
    Cesium.loadJson(‘/../Apps/Points.json‘).then(function(jsonData) {
      for (var i =0 ;i<=jsonData.features.length-10; i++) {
              var ifeature=jsonData.features[i];
         for (var k = 0;k<ifeature.geometry.paths[0].length-10; k++) {
               if (ifeature.geometry.paths[0][k].length==2) {
                    viewer.entities.add({
                    position : Cesium.Cartesian3.fromDegrees(ifeature.geometry.paths[0][k][0],ifeature.geometry.paths[0][k][1]),
                    point : {
                        pixelSize : 10,
                        color :Cesium.Color.YELLOW
                     }
               });
             }
           }
      }
   }).otherwise(function(error) {
});
 </script>
</body>

普通json转GEOjson参考http://blog.csdn.net/liyan_gis/article/details/50540842

时间: 2024-10-25 12:59:07

初识cesium----加载不同JSON格式例子的相关文章

Cesium加载各类数据总结

接触到的加载数据类型:源地图.shp.Geojson.png.wms.地形底图 1.Cesium加载各类源地图(在线的影像服务) #此类加载的本质在于 new Cesium.ImageryProvider() Api defination:“Provides imagery to be displayed on the surface of an ellipsoid. This type describes an interface and is not intended to be insta

Extjs5.1(10):Form加载复杂Json

1.最简单的方式. 如果加载的json数据格式类似于下面这种格式: { "success":true, "data":{ "name":"zhuangweihuang", "age":25, "email":"[email protected]" } } 那么form表单加载起来是最简单的.注意一下这个json格式,首先,必需要的字段是"success&qu

能否使用require(&#39;.json&#39;)的方式加载大量JSON文件?

Node.js中推崇非阻塞I/O,但是require一个模块时却是同步调用的,这会带来性能上的开销,但并不是每次require都很耗时,因为在require成功之后会缓存起来,在此加载时直接从缓存读取,并没有额外开销. 当通过.json的方式加载文件时,固然方便,但大量使用时会导致这些数据被缓存.大量数据会驻留在内存中,导致GC频繁和内存泄漏. 摘自:<技术之瞳> 能否使用require('.json')的方式加载大量JSON文件?

使用Sencha Touch加载本地Json数据

本例没有采用Sencha的mvc模式.只是一个简单的读取加载本地Json数据示例. 文档结构如下: app.js代码如下: Ext.require(['Ext.form.Panel', 'Ext.data.Store', 'Ext.data.reader.Json', 'Ext.dataview.DataView']); Ext.application({ name:'MyApp', icon:'images/icon.png', glossOnIcon:false, phoneStarupSc

Android数据加载及Json解析——原始版

1.创建要下载数据的实体类 class MyData { String imagepath; String title; String desc; public MyData(String imagepath, String title, String desc) { super(); this.imagepath = imagepath; this.title = title; this.desc = desc; } } 2.AsyncTask数据加载及Json解析类 class FileAs

Android利用Volley异步加载数据(JSON和图片)完整示例

Android利用Volley异步加载数据(JSON和图片)完整示例 MainActivity.java package cc.testvolley; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v

cesium 加载shp格式的白模建筑

ceisum加载shp格式的建筑.有两种思路,目前推荐第二种. 方法一:将shp格式转换为geojson格式,然后采用cesium提供的接口加载到ceisum中. 严重缺陷:在面对大场景问题,即数据量较大时,非常容易卡死.崩溃 方法二:将shp转换为3dtiles,然后加载到ceiusm中. 3dtiles是ceisum解决大场景问题专门提供的一种数据格式. 关键:转换工具,我使用的是cesiumLab,比较好用,工具中需要加载dem,目测是用来与地形贴合的. 大家有别的工具可以留言,一起分享.

Jquery easyUI datagrid加载复杂JSON数据方法

1.JSON数据为: { "rows": [ { "itemNo": "1", "itemName": "12", "spec": "", "pattern": "", "itemCategory": { "id": "A01", "name": &

cesium 加载倾斜摄影模型(这里有一坑)

代码如下: 1 // Construct the default list of terrain sources. 2 var terrainModels = Cesium.createDefaultTerrainProviderViewModels(); 3 4 // Construct the viewer with just what we need for this base application 5 var viewer = new Cesium.Viewer('cesiumCont