1 GeoServer服务发布

1.1 WMS服务

下载GeoServer安装版安装,同时安装geopackage扩展,以备使用。使用XX地图下载器下载地图,导出成GeoPackage地图文件。

(1)下载 GeoPackage DEM数据

(2)打开GeoServer服务界面

(3)点击左侧工作区 ->添加新的工作区 ->输入一个名字URL可以随意起,点击提交(作者使用的名字是Cesium)

(4)点击左侧数据存储->新建数据源,会发现两个GeoPackage,此处根据下载的地图类型选择即可

(5)工作区选择刚刚新建的工作区,数据源名称可以随便起,连接参数点击浏览选择刚才导出的GeoPackage文件

发布成功后弹出如下窗口,点击发布

点击左侧 -> Layer Perview 找的刚才发布的图层,点击 OpenLayers

出现如下效果:

2 Cesium调用

2.1 WMS服务

打开Cesium工作区,添加如下代码。

    <script>  var viewer = new Cesium.Viewer('cesiumContainer');  var provider = new Cesium.WebMapServiceImageryProvider({  url: 'http://localhost:8082/geoserver/cesium/wms',  layers: 'cesium:taile',  parameters: {  <span style="white-space:pre"> </span>   service : 'WMS',  format: 'image/png',  transparent: true,  }  });  viewer.imageryLayers.addImageryProvider(provider);  </script>

至此Cesium离线地图服务完成

注意:最后访问时使用谷歌浏览器跨域方式访问,否则会出现WMS服务无响应的情况。

2.2 WFS服务

需求: 为了便于前端渲染数据,自定义图层渲染。

思路:获取地图服务中的要素进行渲染。

工具:GeoServer2.6.4,cesium,

思路有了就开始找资料写代码,cesium有接口可以加载WMS服务,但是加载的WMS服务获取到的是切片,不可能将获取到的要素进行渲染。于是想通过WFS服务来渲染数据,但是cesium没有提供可用的接口,通过google,找到了一个比较靠谱的思路:geoserver的地图服务支持很多格式,其中就可以显示GeoJson数据,然后通过AJAX获取geoserver服务中的GeoJson数据,在通过cesium的GeoJsonDataSource进行数据的加载,然后渲染就好说了。

这里假设geoserver的WFS服务已经发布好了。

获取服务地址

在GeoServer的LayerPreview图层列表中的目标图层后面,再select on中选择GeoJson。

这个时候页面中会以GeoJson格式显示该图层的数据,然后地址栏中的链接就是我们需要的地址,如下图所示。

AJAX获取GeoJson数据

var viewer = newCesium.Viewer('cesiumContainer');$.ajax({url:"http://localhost:8082/geoserver/mytest/ows?service=WFS&request=GetFeature&typeName=mytest:river4&outputFormat=application/json",cache: false,async: true,success: function(data) {var datasource=Cesium.GeoJsonDataSource.load(data);viewer.dataSources.add(datasource);},error: function(data) {console.log("error");}});

这样数据就被加载到cesium中了,然后使用 dataSource.entities.values,就可以对图层进行渲染了,代码如下:

var entities = dataSource.entities.values;for (var i = 0; i < entities.length; i++) {var entity = entities[i];var polylineVolume = {positions:entity.polyline._positions,shape:computeCircle(50.0),material:Cesium.Color.RED}entity.polylineVolume=polylineVolume;entity.polyline=null;
}

PS:这里还要解决跨域问题,否则ajax获取不到GeoJson数据,解决方法:http://pan.baidu.com/s/1cpGg1o 或 Cesium_Load_GeoJson.rar

效果图:

参考文章

kill5921,   Cesium 调用Geoserver WMS服务及Geoserver服务发布

cesium加载WFS服务(GeoServer发布)

转载于:https://www.cnblogs.com/arxive/p/8414843.html

Cesium调用Geoserver发布的 WMS、WFS服务相关推荐

  1. Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效

    一.问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下. // Cesium加载wms var wms = new Cesium.WebMapServ ...

  2. mapbox 添加geoserver发布的wms服务及wms服务属性查询

    <!DOCTYPE html> <html><head><meta charset='utf-8' /><title>mapbox 添加 g ...

  3. 高德地图 sdk 加载 geoserver 发布的瓦片地图服务

    前言 最近,碰到了需求,想要在高德 sdk 中使用在 geoserver 里面发布的瓦片地图. 还好经过一番研究,在其官方文档中发现,从新版本(v1.4.3开始)的高德 sdk 开始,已经支持加载第三 ...

  4. 开源GIS(四)——openlayers中geoserver发布的WMS与WFS加载

    目录 一.引言 二.geoserver中WMS加载 三.geoserver中WFS加载 四.总结 一.引言 使用openlayer中内置的一些类拓展已经能很好的加载arcgis的图层,比较简单:既然开 ...

  5. .net 访问 geoserver 发布的 wms   跨域问题解决方案

    环境:  服务器  geoserver2.4.1 开发机访问服务器发布的wms 存在跨域问题,研究两天终于找到解决方案. 主要思路是: 使用jquery的ajax 代替Groserver的reques ...

  6. World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)

    这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171 1.WMSTiledImageLayer类说明 一个WMSTiledImageLayer类对象只能对应一个WMS发 ...

  7. leaflet 加载 geoserver 发布的 wms 服务

    1. 安装 geoserver 服务:略 2. 启动 geoserver: 3. 登录 geoserver 控制台:( 默认账号.密码为 admin.geoserver ) 4. 新建工作区: 5. ...

  8. Leaflet中加载Geoserver发布的WMS服务显示地图

    场景 Openlayers下载与加载geoserver的wms服务显示地图: Openlayers下载与加载geoserver的wms服务显示地图_BADAO_LIUMANG_QIZHI的博客-CSD ...

  9. Google Map API V3调用arcgis发布的瓦片地图服务

    由于最近项目需要用到CAD制作的地图,但之前一直使用的是用谷歌离线瓦片地图的方式,怎么样把CAD图像地图一样有缩放,移动的功能放到网页显示成了难题, 原先的谷歌地图的代码难道就不能用了?重新写一套代码 ...

最新文章

  1. Asp.net MVC2.0系列文章-运行Web MVC2.0 Demo
  2. 在eclipse中开发servlet流程
  3. 6264:走出迷宫(DFS和BFS)
  4. 机器学习之 weka学习(二)算法说明
  5. 第一季5:Hi3518EV200的环境搭建
  6. Mplayer后台播放没有声音
  7. 飞鸽传书的一个美丽的神话
  8. CSS:媒体查询 CSS3 Media Queries
  9. 算法学习总结(3)——二叉树数据结构重点知识总结
  10. (转载)Linux的IPC命令
  11. mongodb查询分页优化(二)
  12. 【车间调度】基于matlab鸟群算法求解车间调度问题【含Matlab源码 1395期】
  13. [Tizen开发]SDB调试工具使用简介
  14. Microsoft Office2010 安装包和安装方法
  15. compositionAPI
  16. 关于嵌入式高端ARM核心板设计风格优缺点分析(作者:gooogleman)
  17. java学习(二)——类与对象
  18. 基于MATLAB手写体数字识别程序设计
  19. 原创SpringMvc+Mybatis+Redis框架
  20. 【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(一)

热门文章

  1. Git 从了解到放弃
  2. JAVA编程规范-常量定义
  3. UITextView: 响应键盘的 return 事件(收回键盘)
  4. sql性能优化之多表联查
  5. [SharePoint][SharePoint2013循序渐进]SPS2013简介
  6. opengl 区域填充之种子填充线扫描法
  7. uglifyjs报错 webpack_webpack3里使用uglifyjs压缩js时打包报错的解决
  8. matlab 获取视频图像的信息
  9. 小心使用STL中map的[]操作符
  10. 最大流的算法——Edmonds-Karp算法(最短路径增广算法)