Cesium 查询加载 geoserver的wfs 数据

最近一段时间在研究cesium,cesium如何加载geoserver数据成为了我的难题。cesium可以加载geoserver的geojson数据( Cesium.GeoJsonDataSource.load() )。

起初的时候通过openlayer查询数据,然后在Cesium地图上进行点位的展示。对于cesium调用geoserver查询数据不知

如何下手。经过好长时间的学习,无意间从其他人的博客中翻到geoserver的cql_filter过滤字段,于是知道可以通过ajax调用geoserver数据进行模糊查询。废话不多说了,上代码。


var  tuceng=  ["jianzhu","shitang","sushe"];//图层名字
//We_MAP 工作区名称
 $.ajax({
    type:'post',
    url:'http://172.x.x.x:8060/geoserver/We_MAP/ows?service=WFS&versio
n=1.0.0&request=GetFeature&typeName=We_MAP%3A'+tuceng+'&outputFormat=app
lication%2Fjson', 
    data:{ "cql_filter":"name like '%"+keyword+"%'" },
       //name+like+%27%25餐厅%25%27   name like '%餐厅%'
    async:false,
    success:function(data){

    if(data.features.length>0){

      page(data.features.length, data.features);//数据分页

      }
    }
});

以上代码就可以实现Cesium加载Geoserver 的数据了。

在geoserver的浏览器端查询

http://172.x.x.x:8060/geoserver/We_MAP/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=We_MAP%3Ashitang&maxFeatures=50&outputFormat=application%2Fjson&cql_filter=name+like+%27%25%E9%A4%90%E5%8E%85%25%27

上面的对中文文字进行转义了,下面的是没有转义的

http://172.x.x.x:8060/geoserver/We_MAP/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=We_MAP%3Ashitang&maxFeatures=50&outputFormat=application%2Fjson&cql_filter=name+like+%27%25餐厅25%27

下面的截图是在浏览器中的截图

name后面的+是转义字符一定要有。

 

 

转载自:https://blog.csdn.net/u014368040/article/details/86503212

You may also like...