您好,我现在正在使用Openlayers.Control.getfeature
使用wfs
协议在我点击地图中的某个功能时返回属性。
我知道我可以使用wmsgetfeatureinfo
返回属性,但我的服务器管理员禁止访问它自己的计算机,因此我无法使用代理访问geoserver
。
我有什么方法可以使用wfs
getfeature
来返回wmsgetfeatureinfo
等属性吗?
以下是wfs
getfeature
<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection
numberOfFeatures="1"
timeStamp="2013-12-19T05:57:11.434Z"
xsi:schemaLocation="http://localhost:8080/geoserver/kabupaten http://127.0.0.1:8080/geoserver/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=kabupaten%3Adesa http://www.opengis.net/wfs http://127.0.0.1:8080/geoserver/schemas/wfs/1.1.0/wfs.xsd"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:provinsi="http://localhost:8080/geoserver/provinsi"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:pusat="http://localhost:8080/geoserver/pusat"
xmlns:ccrom="http://localhost:8080/geoserver/ccrom"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:kabupaten="http://localhost:8080/geoserver/kabupaten"
xmlns:ows="http://www.opengis.net/ows"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink">
<gml:featureMembers>
<kabupaten:desa gml:id="desa.38888">
<kabupaten:the_geom>
<gml:MultiSurface srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:surfaceMember>
<gml:Polygon srsDimension="2">
<gml:exterior>
<gml:LinearRing srsDimension="2">
<gml:posList>
110.59745283700005 -7.748368004999975 110.59713305000008 -7.748094082999955
110.59648326600006 -7.748150648999967 110.59648297300004 -7.748150464999981
[...]
110.59745742400008 -7.748371934999966 110.59745283700005 -7.748368004999975
</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</kabupaten:the_geom>
<kabupaten:PROVNO>33</kabupaten:PROVNO>
<kabupaten:KABKOTNO>10</kabupaten:KABKOTNO>
<kabupaten:KECNO>070</kabupaten:KECNO>
<kabupaten:DESANO>001</kabupaten:DESANO>
<kabupaten:IDSP2010>3310070001</kabupaten:IDSP2010>
<kabupaten:PROVINSI>JAWA TENGAH</kabupaten:PROVINSI>
<kabupaten:KABKOT>KLATEN</kabupaten:KABKOT>
<kabupaten:KECAMATAN>KALIKOTES</kabupaten:KECAMATAN>
<kabupaten:DESA>JIMBUNG</kabupaten:DESA>
<kabupaten:KERENTANAN>2</kabupaten:KERENTANAN>
<kabupaten:IKA>0.18</kabupaten:IKA>
<kabupaten:IKS>-0.22</kabupaten:IKS>
<kabupaten:BANJIR>4</kabupaten:BANJIR>
<kabupaten:KEKERINGAN>6</kabupaten:KEKERINGAN>
</kabupaten:desa>
</gml:featureMembers>
</wfs:FeatureCollection>
答案 0 :(得分:0)
你可以使用 的 OpenLayers.Protocol.WFS.fromWMSLayer(层)强> 其中layer是geoserver的wms图层
control = new OpenLayers.Control.GetFeature({
protocol: OpenLayers.Protocol.WFS.fromWMSLayer(layer),
box: true,
hover: true,
multipleKey: "shiftKey",
toggleKey: "ctrlKey"
});
并将此控件添加到地图中。 我想你不能把结果显示为弹出窗口。但是你可以获得功能信息,并可以添加到另一个矢量图层。 Here is the example