当前位置:   article > 正文

四、Cesium加载geojson数据展示区块、加载kml文件数据_cesium geojson 专题信息展示

cesium geojson 专题信息展示

一、加载geojson数据

获取geojson,下载路径:https://download.csdn.net/download/weixin_41996632/11839214

Cesium APP文件夹下创建assets,然后将json文件拷贝到该文件夹下,引用代码如下,

记得修改文件加载路径修改代码,若是从上面路径下载的文件记得打开文件然后删除"china_zz_20191009   "

  1. <body>
  2. <div id="cesiumContainer"></div>
  3. <script>
  4. var viewer = new Cesium.Viewer('cesiumContainer');
  5. //Seed the random number generator for repeatable results.
  6. Cesium.Math.setRandomNumberSeed(0);
  7. var promise=Cesium.GeoJsonDataSource.load('./assets/china_zz_20191009.json');
  8. promise.then(function(dataSource) {
  9. viewer.dataSources.add(dataSource);
  10. var entities = dataSource.entities.values;
  11. var colorHash = {};
  12. for (var i = 0; i < entities.length; i++) {
  13. var entity = entities[i];
  14. var name = entity.name;
  15. var color = colorHash[name];
  16. if (!color) {
  17. color = Cesium.Color.fromRandom({
  18. red: 1,
  19. maximumGreen: 1,
  20. maximumBlue: 1,
  21. alpha : 1.0
  22. });
  23. colorHash[name] = color;
  24. }
  25. entity.polygon.material = color;
  26. entity.polygon.outline = false;
  27. entity.polygon.extrudedHeight =5000.0;
  28. }
  29. });
  30. viewer.flyTo(promise);
  31. </script>
  32. </body>

高低起伏显示,修改以上代码

entity.polygon.extrudedHeight = entity.properties.adcode._value / 10;

以下代码为颜色随机 值油0~1

  1. color = Cesium.Color.fromRandom({
  2. red: 1,
  3. maximumGreen: 1,
  4. maximumBlue: 1,
  5. alpha : 1.0
  6. });

二、加载kml文件数据

下载kml文件,地址:待写入

将下载的文件放入到和上面json同级文件夹下,该数据是厦门的kml文件数据,加载kml文件数据代码如下

  1. <body>
  2. <div id="cesiumContainer"></div>
  3. <script>
  4. var viewer = new Cesium.Viewer('cesiumContainer');
  5. // 加载kml数据,更改description信息,多了黄色的标签里面包含的
  6. var kmlOptions = {
  7. camera : viewer.scene.camera,
  8. canvas : viewer.scene.canvas,
  9. clampToGround : true
  10. };
  11. // Load geocache points of interest from a KML file
  12. // Data from : http://catalog.opendata.city/dataset/pediacities-nyc-neighborhoods/resource/91778048-3c58-449c-a3f9-365ed203e914
  13. var geocachePromise = Cesium.KmlDataSource.load('./assets/doc.kml', kmlOptions);
  14. // Add geocache billboard entities to scene and style them
  15. geocachePromise.then(function(dataSource) {
  16. // Add the new data as entities to the viewer
  17. viewer.dataSources.add(dataSource);
  18. // Get the array of entities
  19. var geocacheEntities = dataSource.entities.values;
  20. for (var i = 0; i < geocacheEntities.length; i++) {
  21. var entity = geocacheEntities[i];
  22. if (Cesium.defined(entity.billboard)) {
  23. // Adjust the vertical origin so pins sit on terrain
  24. entity.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM;
  25. // Disable the labels to reduce clutter
  26. entity.label = undefined;
  27. // Add distance display condition
  28. entity.billboard.distanceDisplayCondition = new Cesium.DistanceDisplayCondition(10.0, 20000.0);
  29. // Compute latitude and longitude in degrees
  30. var cartographicPosition = Cesium.Cartographic.fromCartesian(entity.position.getValue(Cesium.JulianDate.now()));
  31. var latitude = Cesium.Math.toDegrees(cartographicPosition.latitude);
  32. var longitude = Cesium.Math.toDegrees(cartographicPosition.longitude);
  33. // Modify description(将信息添加到description描述信息中,我们这里只添加经纬度)
  34. var description = '<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>' +
  35. '<tr><th>' + "Longitude" + '</th><td>' + longitude.toFixed(5) + '</td></tr>' +
  36. '<tr><th>' + "Latitude" + '</th><td>' + latitude.toFixed(5) + '</td></tr>' +
  37. '</tbody></table>';
  38. entity.description = description;
  39. }
  40. }
  41. });
  42. </script>
  43. </body>

遗留问题:entity.description = description;加载后右侧显示配置无效 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号