http://www.classicning.com/blog/post/310.html
们可以向WMS服务器发送请求来获取我们想要的地图图片,类似地,可以向WFS服务器发送请求来获得指定的Feature信息。通常情况下,这种信息是用GML传送的。因此,可以利用XMLHttpRequest来完成GML的获取和解析,从中提取我们想要的Feature信息。
现有这样一个FeatureType,名为topp:cities
我们可以对WFS服务器(以GeoServer为例)发送以下url,来获得响应的GML:
http://localhost:8181/geoserver/wfs?request=GetFeature&version=1.0.0&typename=topp:cities&propertyname=name,country,the_geom
几个重要的参数应该很好理解齐含义,typename即请求的featureType名,propertyname中包含请求的列名,不同的列之间用逗号分隔。值得一提的是,如果你请求的列名无效,如:
http://localhost:8181/geoserver/wfs?request=GetFeature&version=1.0.0&typename=topp:cities&propertyname=names
GeoServer将返回一下XML:
<?xml version="1.0" ?>
<ServiceExceptionReport version="1.2.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://localhost:8181/geoserver/schemas//wfs/1.0.0/OGC-exception.xsd">
<ServiceException>Requested property: names is not available for topp:cities. The possible propertyName values are: [name, country, population, capital, the_geom]</ServiceException>
</ServiceExceptionReport>
其中包含所有有效列名。
而如果你的请求中不包含the_geom列,GeoServer在处理的时候会跑出NullPointerException,也就是说,对于1.5.0版本的GeoServer,在进行WFS请求的时候,列名必须包含the_geom。而在其他一些WFS服务器中,这一点并不是必须的。
此外,还可以利用Filter获得指定的Feature。发送以下XML到WFS服务器,就可以获得主键值为3的Feature信息,而返回的GML里必定只包含Fid=3的Feature
<wfs:GetFeature service="WFS" version="1.0.0"
outputFormat="GML2"
xmlns:topp="http://www.openplans.org/topp"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
<wfs:Query typeName="topp:cities">
<ogc:Filter>
<ogc:FeatureId fid="cities.3"/>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
返回结果如下
<?xml version="1.0" encoding="UTF-8" ?>
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openplans.org/topp http://localhost:8181/geoserver/wfs/DescribeFeatureType?typeName=topp:cities http://www.opengis.net/wfs http://localhost:8181/geoserver/schemas/wfs/1.0.0/WFS-basic.xsd">
<gml:boundedBy>
<gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts="">30.45332718,59.95188904 30.45332718,59.95188904</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<gml:featureMember>
<topp:cities fid="cities.3">
<topp:name>Saint Petersburg</topp:name>
<topp:country>Russia</topp:country>
<topp:population>5825000</topp:population>
<topp:capital>N</topp:capital>
<topp:the_geom>
<gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts="">30.45332718,59.95188904</gml:coordinates>
</gml:Point>
</topp:the_geom>
</topp:cities>
</gml:featureMember>
分享到:
相关推荐
在本例子中,我们将讨论如何在GeoServer中利用WFS的过滤查询功能来获取特定记录。 首先,WFS的GetFeature请求是用来从服务器获取地理特征的重要方法。在这个例子中,我们看到一个`<wfs:GetFeature>`元素,它包含了...
geoserver中wfs-t 编辑demo 包含添加 更新 删除 简单sample code
4. **集成Cesium与GeoServer**:要将Cesium与GeoServer集成,首先需要在GeoServer中发布数据,并配置WFS服务。然后在Cesium应用中,通过Ajax或Fetch API请求WFS服务,获取或操作地图图层。 5. **图层删除**:在...
cesium加载WFS服务(GeoServer发布)-附件资源
在本例中,我们看到的是如何利用GeoServer提供的WFS服务来获取图层信息,并将其转化为GeoJSON格式的数据集。 GeoServer是一款开源的GIS服务器,它支持WFS服务,使得用户能够通过HTTP协议进行地理数据的查询、添加、...
利用openlayers加载geoserver wfs服务发布的矢量图层。
Leaflet是一个轻量级的JavaScript库,用于创建交互式的地图应用,而GeoServer则是一个开源的GIS服务器,支持各种地理空间数据的发布和服务,包括WFS(Web Feature Service)。本教程将详细介绍如何通过Leaflet与...
在GeoServer中发布数据后,OpenLayers可以通过WFS服务与GeoServer通信,执行CRUD(创建、读取、更新、删除)操作。例如: 1. **查询**:OpenLayers可以发送一个WFS请求到GeoServer,获取特定图层的数据,展示在地图...
本教程将详细讲解如何通过Cesium与GeoServer集成,利用WFS(Web Feature Service)服务来实现图层的编辑功能。 首先,了解WFS服务。WFS是一种OGC标准,允许用户通过网络获取、修改和管理地理空间特征数据。它提供了...
Leaflet是一个轻量级的JavaScript库,用于创建交互式的地图应用,而GeoServer则是一个开源的GIS服务器,支持各种地理空间数据的发布和服务,包括WMS(Web Map Service)和WFS(Web Feature Service)。本教程将详细...
GeoServer是一款开源的空间数据服务器,它基于Java技术,实现了OGC(开放地理空间联盟)的多种标准,包括WMS(Web Map Service)、WFS(Web Feature Service)等,用于发布地图服务和地理空间数据。标题"geoserver-...
GeoServer 是一个开源的、基于 Java 的地理信息服务器,它可以读取多种GIS数据格式,并通过WMS(Web Map Service)、WFS(Web Feature Service)等OGC(开放地理空间联盟)标准进行数据发布。在本项目中,GeoServer...
Cesium是一款基于WebGL的开源JavaScript库,用于创建交互式的3D地球浏览器,而GeoServer是一个开源的地理空间服务器,它支持多种GIS数据格式和服务接口,如WMS(Web Map Service)和WFS(Web Feature Service)。...
在本教程中,我们将深入探讨如何使用Leaflet.js库与GeoServer集成,以显示通过WMS(Web Map Service)发布的地图数据。Leaflet是一个轻量级的JavaScript库,专为Web上的交互式地图设计,而GeoServer是一个开源的...
GeoServer 瓦片缓存机制研究 GeoServer 作为一个基于 Java 的开源 GIS 服务器,具有成本低廉、良好的扩展性和部署的灵活性等特点。但是,在面对庞大地图数据、庞大的用户交互时,如果仅仅采用 GeoServer 作为 GIS ...
- 发送WFS请求:当用户完成选择后,通过Ajax或Fetch API发送一个WFS请求到GeoServer,请求包含用户选择的空间范围。 - 处理响应:GeoServer返回符合查询条件的地理特征,这些特征通常是GML( Geography Markup ...
GeoServer支持多种开放标准,如OGC(开放地理空间联盟)的服务规范,如WMS(Web Map Service)和WFS(Web Feature Service)。这个汉化版本解决了英文界面对于非英语背景用户可能造成的理解和操作困难,使得中文用户...
GeoServer是一款开源的地理信息系统(GIS)服务器,它支持OGC标准,如WMS、WFS等,用于发布和操作地理空间数据。这两本书籍,"Mastering GeoServer"和"GeoServer Beginner's Guide"是深入理解并掌握GeoServer的重要...
2. **Web Feature Service (WFS)**:GeoServer也支持WFS,允许客户端与地理空间数据进行交互操作,如查询、添加、修改和删除数据。WFS 提供了对矢量数据的操作,使开发者能够构建更复杂的应用程序。 3. **OGC标准...