ปัญหาเกี่ยวกับตัวกรอง WFS (BBOX, INTERSECTS)


10

ฉันพยายามรับคุณสมบัติ / คุณสมบัติจากพื้นที่เล็ก ๆ โดยใช้ตัวกรอง BBOX (หรือ INTERSECTS) ในแบบสอบถาม WFS ของฉัน ฉันควรจะคาดหวังเพียงชุดเล็ก ๆ ของคุณสมบัติหรือคุณสมบัติเดียวและยังแบบสอบถามส่งกลับค่อนข้างหล่อของพวกเขา

ฉันมี GeoServer เวอร์ชัน 2.2.2 พร้อมที่เก็บข้อมูล Oracle ฉันได้ปิดการใช้งานการเลือก 'loose bbox' เพื่อไม่ให้เป็นสาเหตุของปัญหา

นี่คือข้อความค้นหาที่มีตัวกรอง 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 เป็นฐานข้อมูลและใช้ SRS ดั้งเดิมใน Geoserver แม้ว่ารหัส SRS ที่ประกาศและบังคับใช้ใน 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 ดั้งเดิมดังนั้นจึงไม่ชัดเจนสำหรับฉันว่าคุณทำอะไรเพื่อแก้ไขปัญหานี้
ca0v
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.