2013-12-19 7 views
0

안녕하세요, 지금은 Openlayers.Control.getfeature을 사용하여 wfs 프로토콜을 사용하여지도에서 기능 중 하나를 클릭하면 속성을 반환합니다. wmsgetfeatureinfo을 사용하여 속성을 반환 할 수 있지만 내 서버 관리자는 프록시를 사용하여 geoserver에 액세스 할 수 없으므로 자체 시스템에 대한 액세스를 비활성화했습니다.WFS GetFeature를 사용하여 wmsgetfeatureinfo와 같은 데이터를 반환하는 방법은 무엇입니까?

사용할 수있는 방법이 있습니까 wfsgetfeaturewmsgetfeatureinfo과 같은 속성을 반환 하시겠습니까? 여기

는 층이 geoserver에서 WMS 층입니다 당신은 OpenLayers.Protocol.WFS.fromWMSLayer (레이어)를 사용할 수 있습니다 wfsgetfeature

<?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&amp;version=1.1.0&amp;request=DescribeFeatureType&amp;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

의 응답 중 하나입니다

control = new OpenLayers.Control.GetFeature({ 
    protocol: OpenLayers.Protocol.WFS.fromWMSLayer(layer), 
    box: true, 
    hover: true, 
    multipleKey: "shiftKey", 
    toggleKey: "ctrlKey" 
}); 

이 컨트롤을지도에 추가하십시오. 결과를 팝업으로 표시 할 수 없다고 생각합니다. 그러나 기능 정보를 가져와 다른 벡터 레이어에 추가 할 수 있습니다. Here is the example

+0

어떻게이 방법을 openlayers 3에서 사용할 수 있습니까? – projo