Cesium学习笔记3——调用Geoserver发布的WMS服务
1.Cesium学习笔记1——安装配置2.Cesium学习笔记2——第一个Cesium程序3.地图服务器GeoServer4.Geoserver发布地图服务
5.Cesium学习笔记3——调用Geoserver发布的WMS服务
6.Cesium学习笔记4——加载天地图地图服务7.Cesium学习笔记5——加载topojson和Geojson8.Cesium学习笔记6——加载倾斜摄影模型9.Cesium开发遇到的问题解决10.Cesium学习笔记7——几何体绘制11.Cesium学习笔记8——加载城市建筑物火柴盒模型12.Cesium学习笔记9——鼠标交互绘制13.Cesium学习笔记10——通过WFS服务实现交互式属性查询14.Cesium学习笔记11——坐标量测15.Cesium学习笔记12——基于Cesium的分层分户模型构建与可视化参考链接:https://space.bilibili.com/597185371/channel/collectiondetail?sid=1650498
利用Geoserver发布地图服务,服务类型WMS。
采用Cesium调用wms服务,源码如下:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <!-- Use correct character set. --> 5 <meta charset="utf-8" /> 6 <!-- Tell IE to use the latest, best version. --> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 8 <!-- Make the application on mobile take up the full browser screen and disable user scaling. --> 9 <meta 10 name="viewport" 11 content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" 12 /> 13 <title>Hello World!</title> 14 <script src="./Build/CesiumUnminified/Cesium.js"></script> 15 <style> 16 @import url(./Build/CesiumUnminified/Widgets/widgets.css); 17 html, 18 body, 19 #cesiumContainer { 20 width: 100%; 21 height: 100%; 22 margin: 0; 23 padding: 0; 24 overflow: hidden; 25 } 26 </style> 27 </head> 28 <body> 29 <div id="cesiumContainer"></div> 30 <script> 31 Cesium.Ion.defaultAccessToken='你的Token'; 32 var viewer = new Cesium.Viewer('cesiumContainer', { 33 timeline:false, 34 animation:false, 35 vrButton:true, 36 sceneModePicker:false, 37 infoBox:true, 38 scene3DOnly:true, 39 terrainProvider: Cesium.createWorldTerrain() 40 }); 41 viewer._cesiumWidget._creditContainer.style.display = "none"; 42 var imageryProvider = new Cesium.WebMapServiceImageryProvider({ 43 url : 'http://127.0.0.1:8180/geoserver/NtuWrokspace/wms?', 44 layers : 'NtuWrokspace:省界_region', // WMS图层名称 45 parameters : { 46 transparent : true, // 设置为透明背景 47 format: "image/png", 48 srs: "EPSG:4326", 49 } 50 }); 51 52 // 创建一个ImageryLayer实例,将ImageryProvider添加到场景中 53 var imageryLayer = new Cesium.ImageryLayer(imageryProvider); 54 viewer.imageryLayers.add(imageryLayer); 55 viewer.homeButton.viewModel.command.beforeExecute.addEventListener(function(commandInfo) { 56 // Fly to tileset 57 viewer.flyTo(tileset); 58 59 // Tell the home button not to do anything 60 commandInfo.cancel = true; 61 }); 62 </script> 63 </body> 64 </html>
由于Geoserver采样tomcat Web服务器,如果采样node.js发布网页,产生跨域调用,F12看到报错:
Demo02.html:1 Access to XMLHttpRequest at 'http://127.0.0.1:8180/geoserver/NtuWrokspace/wms?transparent=true&format=image%2Fpng&srs=EPSG%3A4326&service=WMS&version=1.1.1&request=GetMap&styles=&layers=NtuWrokspace%3A%E7%9C%81%E7%95%8C_region&bbox=-180%2C-90%2C0%2C90&width=256&height=256' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
把网络源码都放到tomcat下发布,
网页访问结果如下:
因为开启了infoBox属性为true,所以可以直接显示属性查询框。
作者:太一吾鱼水
文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。
欢迎大家留言交流,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2012-08-24 利用C#将SQLServer数据库迁移到Oracle数据库方法探索