WFS फ़िल्टर के साथ समस्या (BBOX, INTERSECTS)


10

मैं अपने WFS क्वेरी में BBOX (या INTERSECTS) फ़िल्टर का उपयोग करके एक छोटे से क्षेत्र से एक सुविधा / सुविधाएँ प्राप्त करने की कोशिश कर रहा हूँ। मुझे केवल एक छोटे से फीचर या एक ही फीचर की उम्मीद करनी चाहिए और फिर भी क्वेरी उनमें से एक बहुत अच्छा गुच्छा देता है।

मेरे पास ओरेकल डेटा स्टोर के साथ जियोसर्वर संस्करण 2.2.2 है। मैंने 'ढीले बॉक्स' चयन को अक्षम कर दिया है ताकि समस्या का कारण न हो।

यहाँ BBOX फ़िल्टर के साथ क्वेरी दी गई है:

<wfs:GetFeature
xmlns:wfs="http://www.opengis.net/wfs"
service="WFS"
version="1.1.0"
outputFormat="json"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <wfs:Query typeName="LiVi:LIIKENNE_ELEMENTTI" srsName="EPSG:3067" xmlns:LiVi="http://172.17.14.211:8080/LiVi">
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
      <ogc:BBOX>
        <ogc:PropertyName>GEOMETRY</ogc:PropertyName>
        <gml:Envelope xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:3067">
          <gml:lowerCorner>316600 6838986</gml:lowerCorner>
          <gml:upperCorner>327696 6844298</gml:upperCorner>
        </gml:Envelope>
      </ogc:BBOX>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

समस्या INTERSECTS फ़िल्टर के साथ बनी रहती है। बहुभुज का आकार लगभग 10 x 10 मीटर है।

<wfs:GetFeature
xmlns:wfs="http://www.opengis.net/wfs"
service="WFS"
version="1.1.0"
outputFormat="json"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <wfs:Query typeName="LiVi:LIIKENNE_ELEMENTTI" srsName="EPSG:3067" xmlns:LiVi="http://172.17.14.211:8080/LiVi">
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
      <ogc:Intersects>
        <ogc:PropertyName>GEOMETRY</ogc:PropertyName>
        <gml:Polygon xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:3067">
          <gml:exterior>
            <gml:LinearRing>
              <gml:posList>308082.07106781186 6833724.928932188 308082.07106781186 6833739.071067812 308067.92893218814 6833739.071067812 308067.92893218814 6833724.928932188 308082.07106781186 6833724.928932188</gml:posList>
            </gml:LinearRing>
          </gml:exterior>
        </gml:Polygon>
      </ogc:Intersects>
    </ogc:Filter>
  </wfs:Query>
</wfs:GetFeature>

संपादित करें:

यहाँ एक और अनुरोध है (इस बार GET अनुरोध):

http://172.17.14.211:8080/geoserver/wfs?request=GetFeature&version=1.1.0&srsName=EPSG:3067&typeName=LiVi:LIIKENNE_ELEMENTTI&BBOX=316600,6838986,316605,6838991,EPSG:3067

भले ही BBOX क्षेत्र काफी छोटा है, फिर भी मुझे 1263 सुविधाएँ मिलती हैं, जिनमें से अधिकांश अनुरोध में निर्दिष्ट सीमा के अंदर नहीं आती हैं। उदाहरण के लिए, प्रतिक्रिया में सुविधाओं में से एक से:

<gml:boundedBy>
  <gml:Envelope srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#3067">
    <gml:lowerCorner>317629.69841038 6841957.478078741</gml:lowerCorner>
    <gml:upperCorner>317902.64972173725 6841987.000123474</gml:upperCorner>
  </gml:Envelope>
</gml:boundedBy>

जवाबों:


5

डेटाबेस में SRID मान सेट करके और Geoserver में मूल SRS का उपयोग करके समस्या हल की गई थी। भले ही जियोसेवर में घोषित (और मजबूर) एसआरएस कोड देशी एसआरएस के समान था, लेकिन यह स्पष्ट रूप से स्थानिक फिल्टर को प्रभावित करता था।

http://172.17.14.211:8080/geoserver/wfs?request=GetFeature&version=1.1.0&srsName=EPSG:3067&typeName=LiVi:LIIKENNE_ELEMENTTI&BBOX=316600,6838986,316605,6838991,EPSG:3067


2
क्या आप इस उत्तर में थोड़ा और विस्तार जोड़ सकते हैं? डेटाबेस में SRID को सेट करने से आपका क्या मतलब है? आप कहते हैं कि समाधान मूल SRS का उपयोग करना था, लेकिन आप यह भी कहते हैं कि आप जो उपयोग कर रहे थे वह मूल SRS था इसलिए मेरे लिए यह स्पष्ट नहीं है कि आपने इसे हल करने के लिए क्या किया।
सीएवी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.