Hi,
By "inaccurate bounding box" I was meaning that rectangular box can contain lot
of extra area outside the real region of interest
http://www.openstreetmap.org/#map=5/-42.423/165.059. But I am not sure how
often it would be an advantage to use a better fitted ROI. For example in your
use case the main reason for the trouble seems to be that Oracle fails with
requests which go outside the spatial index of the table which is limited to
the area that is defined by DIM_INFO in the sdo_geom_metadata. That feels like
an Oracle bug, but on the other hand, you have configured the bounds of the
layer for Geoserver and you are right that it can know already before sending
the request that the result will be empty.
I believe that for most non-buggy datastores which support indexes the queries
outside the data bounds are very fast. But the "Honour the configured BBOX"
should be good for CSV which can't be indexed. And lazy users may have database
tables without spatial indexes, or SQL view, or the filter in WMS/WFS request
creates such SQL queries which make the database backend to cease using spatial
index. And who knows what a cascaded WMS/WFS server sends back when the BBOX is
unreasonable, and network latency may make it slow to get even a valid, empty
response. All this makes me think that the "Honour the BBOX" might indeed be a
good thing to have for some configurations.
-Jukka Rahkonen-
________________________________
Victor Tey wrote:
Hi Jukka,
What one of our developer have found with oracle enterprise edition is that the
database actually optimize the query when a query is made outside the bounds
of the dataset. However when we ran the same query on a oracle standard
edition, the query crashed the database. We have logged a ticket with Oracle as
part of our contract with them and its currently under investigation.
You are right when you mention that data added in the future may fall outside
the bbox range specified hence as part of the requirement, it has to be an
optional configuration.
I am unsure why would bbox be inaccurate. The idea is not to filter against a
preset bbox for a particular country, rather to filter only on data that reside
within the bounding box specified. The bbox in Geoserver currently for each
layer can be calculated or manually added. This bbox can potentially span
across countries however as far as we are concerned, if the option is turned
on, any queries that does not intersect with the bbox should return a empty
result. Please explain if I have misinterpreted something, my spatial knowledge
is still rudimental.
From: Rahkonen Jukka (MML) [mailto:[email protected]]
Sent: Friday, 6 February 2015 7:22 AM
To: Jiang, Lingbo (Digital, Marsfield);
[email protected]<mailto:[email protected]>
Subject: Re: [Geoserver-devel] Propose to add an option for latLongBoundingBox
range checking before database query.
Hi,
I think that such check should be optional. The bounding box that gets saved
when the layer is created may not stay valid if the data are updated and new
features are added with WFS-T or just directly to the data source. And
obviously the check should only stop the queries if BBOX is totally outside the
data extents.
I do not know how expensive the out-of-range requests are but I guess that
bounding box filter could only make things faster but not any slower. But if
you decide to go that way, why to do the test with an inaccurate bounding box?
About 50% of the BBOX of Finland is actually Sweden, Russia, Norway, or empty
sea. How about making an additional configuration option "Bounding Polygon" and
use that? A further development step would be to make the integrated GWC to
utilize this Bounding Polygon as well.
-Jukka Rahkonen-
________________________________
Lingbo Jiang wrote:
Hi Geoserver community,
For every WMS layer that has latLongBoundingBox set up in the config, GeoServer
may restrict the request to the configured latLongBoundingBox. At the moment,
it doesn't, and this results in unnecessary query and wastes connections and
cursors (for Oracle).
Thus I propose to add an option in the code for latLongBoundingBox range
checking. the option will allow to filter the none result query which is out of
latLongBoundingBox range and improve the performance.
If community reckon that it is the right way, I am willing to submit a code
patch to implement it if necessary.
Thanks first,
Lingbo
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel