利用Geoserver的wfsBBOX范围查询及Openlayers解析GML,添加Marker

利用Geoserver的wfsBBOX范围查询及Openlayers解析GML,添加Marker
在经历了无数实验摸索及相关大侠的耐心收终于对Geoserve的wfs查询有了一定了解,现写出一点总结。
以下方法描述了对Geoserver进行范围查询,并将查询结果在用OpenLayers在地图上画出的实现方法。
首先wfs查询分为1.0.0和1.1.0两个版本,这两个版本的查询filter格式是不一样的,我是以1.0的格式写的,各位朋友可以研究一下1.1写法。
另外向Geoserver服务器发送请求,这里用到了prototype,在这里的prototype只是简单的发送了一个ajax请求。
比如要进行一个简单的范围查询,这里需要两个点来确定一下矩形,如:116.374614,39.949336和116.391498,39.955299
还要指定一个图层,比如:MyGis下的type图层,还有就是确定要返回的字段,如:NAME和TYPE,
整个的查询xml字符串如下:
<wfs:GetFeature service='WFS' version='1.0.0' outputFormat='GML2'
xmlns:topp='/topp' xmlns:wfs='/wfs'
xmlns:ogc='/ogc' xmlns:gml='/gml'
xmlns:xsi='/2001/XMLSchema-instance'
ne公司
xsi:schemaLocation='/wfs /wfs/1.0.0/WFS-basic.xsd'第六次人口普查>
<wfs:Query typeName='MyGis:type'>
<wfs:PropertyName>MyGis:NAME</wfs:PropertyName>
<wfs:PropertyName>MyGis:TYPE</wfs:PropertyName>
<ogc:Filter><ogc:BBOX><ogc:PropertyName>the_geom</ogc:PropertyName>
从武侠到玄幻
青衣江<gml:Box srsName='/gml/l#4326'>
<gml:coordinates>116.374614,39.949336 116.391498,39.955299</gml:coordinates>
</gml:Box></ogc:BBOX></ogc:Filter>
</wfs:Query></wfs:GetFeature>
Geoserver wfs查询的地址为:
于是用Ajax.Request,发送一个ajax请求,代码如下:
var myAjax = new Ajax.Request( 
GIS_SERVER_URL, 
{contentType: "application/xml", method: 'post', postBody: xmlPara, onComplete: showResponse} 
);
以上参数中: GIS_SERVER_URL为Geoserver wfs查询的地址,xmlPara为查询的xml字
符串,showResponse为查询返回后的处理函数,
showResponse函数如下:
function showResponse(req){
//openlayers的GML解析器
var gmlParse = new OpenLayers.Format.GML();
var features = sponseText);
var icon = new OpenLayers.Icon('images/pp.gif');
var feature, lonlat, marker;
for(var feat in features){   
feature = features[feat];
lonlat = new OpenLayers.ry.ry.y);   
marker = new OpenLayers.Marker(lonlat,icon.clone()); 
//此处注册了鼠标的点击事件,可以在mousedown中做些事情 
ister("mousedown", marker, mousedown); 
//markers为OpenLayers.Layer.Markers 画点的层
markers.addMarker(marker);     
}
}反间谍
以上便完成wfs查询并用openlayers标画结果的任务。
另外wfs的GetFeature还有许多查询功能,在Geoserver的样例查询中,有一些例子,比如主键查询,Between查询,更全面的功能就 要看OGC WFS的白皮书了,filter可以实现如sql语句中的功能,不过白皮书中的讲解也不是很详细(可能是自己E文不够好吧~~),朋友们可以互相讨论一 下~~

本文发布于:2024-09-24 08:33:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/172318.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   请求   范围   确定   比如   返回
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议