云南网站设计方案,新网站制作怎么样,当前主流的网站开发语言,常州免费做网站一、背景
瑞士是位于中欧的一个国家#xff0c;以其美丽的自然风光、高质量的生活和强大的金融体系而闻名#xff0c;其位于欧洲中部#xff0c;四面环山#xff0c;与德国、法国、意大利、奥地利和列支敦士登等国家接壤。瑞士境内有许多湖泊和阿尔卑斯山脉的一部分。瑞士…一、背景
瑞士是位于中欧的一个国家以其美丽的自然风光、高质量的生活和强大的金融体系而闻名其位于欧洲中部四面环山与德国、法国、意大利、奥地利和列支敦士登等国家接壤。瑞士境内有许多湖泊和阿尔卑斯山脉的一部分。瑞士的地理特征丰富多样包括山脉、湖泊和河流自然景观包括阿尔卑斯山脉占据了瑞士的大部分土地其景观包括峰峦叠嶂的山峰、冰川和高山谷地。瑞士境内有一些著名的山峰如马特洪峰Matterhorn、艾格峰Eiger和少女峰Jungfrau等以及许多大大小小的湖泊如日内瓦湖Lake Geneva、琉森湖Lake Lucerne、苏黎世湖Lake Zurich等同时还有莱茵河Rhine River和罗纳河Rhône River等河流共同构建了瑞士独特而美丽的风景。最近获取了瑞士的地形数据因此处理后切成了瓦片数据。
二、数据介绍
0.5m,这是目前能获取的精度最高的瑞士高程数据其实这份DEM原始高程数据很早就下载好了只是一直没转换和处理处理完后的高程数据地形晕渲图见下图 经过投影变换等操作将原始数据变换为wgs84投影然后使用瓦片生成工具切成了Cesium能接入的地形瓦片数据。 0.5m目前能切到20级这是切成瓦片生成的图层信息:
三、显示效果
将数据使用Nginx进行发布具体发布方法可以参考我之前的地形瓦片发布文章这里给出nginx中nginx.conf的配置server方法 server{listen 8802;server_name localhost;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;add_header Access-Control-Allow-Origin $http_origin;add_header Access-Control-Allow-Credentials true;add_header Access-Control-Allow-Methods GET, POST, OPTIONS;add_header Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization;if ($request_method OPTIONS){return 204;}location / {autoindex on;root D:/Data/DEM/DEM-0.5M-WGS84-SWISSALTI-MESH/;#index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}前端使用Cesium进行接入具体接入关键代码如下 //创建viewerconst viewer new Cesium.Viewer(cesium-app, {selectionIndicator: false,baseLayerPicker: false,homeButton: false,infoBox: false,timeline: false,navigationHelpButton: false,navigationInstructionsInitiallyVisible: false,vrButton: false,fullscreenButton: false,geocoder: false,animation: false,sceneModePicker: false,shadows:true,imageryProvider: new Cesium.ArcGisMapServerImageryProvider({url: https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer})});viewer.cesiumWidget.creditContainer.style.display none;viewer.scene.globe.enableLighting false;viewer.scene.highDynamicRange true;viewer.scene.msaaSamples 16;viewer.scene.fog.enabled true;viewer.scene.fog.enableLighting true;//加载地形viewer.terrainProvider new Cesium.CesiumTerrainProvider({url:http://192.168.1.77:8802/,tilingScheme: new Cesium.GeographicTilingScheme(),requestVertexNormals:true});首先创建viewer对象设置大气、光照、抗锯齿等参数增强地形表达效果再通过CesiumTerrainProvider创建viewer的terrainProvider对象这样数据就加载到场景当中了。在这里说明一下,我的后端nginx和前端cesium不是一台机器后端机器ip是192.168.1.77,开放的端口号是8802因此我们接入的url为http:\192.168.1.77::8802同时需要设置tilingScheme,我们的数据都是wgs84投影所以设置的是GeographicTilingScheme对象同时设置requestVertexNormals为true因为地形瓦片是Mesh格式在生成Mesh格式terrain数据时也生成了每个点的法向量这样开启光照地形会有光照明暗阴影效果更加自然。加载到Cesium上的效果截图如下 可以看到沟渠清晰可见两旁的道路非常笔直平坦经过对比才知道原来这份高程数据的分辨率不比影像数据的差很少见。下面看看其他效果图 这是水库图近处的水远处的山风景优美。 这是大坝的效果整个坝体轮廓很清晰 以更近视角观察盘山公路盘山公路也是非常平整这是大家在12.5m的地形数据上无法看到的效果。
四、结语
这份数据精度高质量也很好加上瑞士风景优美是一份难得的做风景可视化的瓦片数据加载到Cesium JS上效果已经很不错如果结合UE5或者Unity游戏引擎把天气系统和光照加上去效果肯定很好放在VR或MR设备上更适合做小场景展示。对于这份数据有需要或者有问题的读者可以在评论区留言或者私信联系。