cesium加载WFS服务(GeoServer发布)
来源:互联网 发布:java中域的概念 编辑:程序博客网 时间:2024/05/01 16:26
需求:
为了便于前端渲染数据,自定义图层渲染。
思路:
获取地图服务中的要素进行渲染。
工具:
GeoServer2.6.4,cesium,
思路有了就开始找资料写代码,cesium有接口可以加载WMS服务,但是加载的WMS服务获取到的是切片,不可能将获取到的要素进行渲染。于是想通过WFS服务来渲染数据,但是cesium没有提供可用的接口,通过google,找到了一个比较靠谱的思路:geoserver的地图服务支持很多格式,其中就可以显示GeoJson数据,然后通过AJAX获取geoserver服务中的GeoJson数据,在通过cesium的GeoJsonDataSource进行数据的加载,然后渲染就好说了。
这里假设geoserver的WFS服务已经发布好了。
1、获取服务地址
在GeoServer的LayerPreview图层列表中的目标图层后面,再select on中选择GeoJson,如下图所示。
这个时候页面中会以GeoJson格式显示该图层的数据,然后地址栏中的链接就是我们需要的地址,如下图所示。
2、实用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加载WFS服务(GeoServer发布)
- openlayer3加载geoserver发布的WFS服务
- openlayers 3加载GeoServer发布的wfs类型服务
- geoserver服务wfs之GetFeature
- 使用GeoServer发布shp数据为WMS服务和WFS服务(图文教程)
- 使用GeoServer发布shp数据为WMS服务和WFS服务
- openlayers3调用GeoServer发布的wfs
- Js调用GeoServer的wfs服务
- Openlayers3 加载 GeoServer WFS的实现
- Geoserver发布metro服务
- GeoServer发布地图服务
- GeoServer发布地图服务
- geoserver发布wms服务
- openlayer之加载wfs服务
- 关于Cesium 加载wms服务
- 基于Geoserver的WFS服务与Openlayers实现地理查询
- Geoserver中WMS和WFS服务的区别
- Ajax POST请求调用Geoserver的WFS服务
- 安装androidstudio出现 Unable to access Android SDK add-on list
- Angular 2 CLI 开发环境的建立与App应用开发入门
- Java保证程序结束时调用释放资源函数
- 02-线性结构1 两个有序链表序列的合并
- Centos 7.x Install
- cesium加载WFS服务(GeoServer发布)
- AlphaGo与柯洁对决:西医与中医之别
- 考研逻辑整理
- 数据结构_3_fibnacci递归与非递归
- 461. Hamming Distance
- 批处理动画
- 452. Minimum Number of Arrows to Burst Balloons
- QTP应用实例-G.8032测试自动化(1)测试分析
- Java程序操作Redis