Я пытаюсь получить функцию / функции из небольшой области, используя фильтр BBOX (или INTERSECTS) в моем запросе WFS. Я должен ожидать только небольшого набора функций или одной функции, и все же запрос возвращает довольно большую группу из них.
У меня GeoServer версии 2.2.2 с хранилищем данных Oracle. Я отключил выбор «свободный 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 х 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):
Несмотря на то, что область 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>