From: Michael B. <mic...@gm...> - 2010-01-13 11:18:25
|
Hello, > Suppose I'm running the query a lot so I loaded all the geometries into > FeatureCollection. Sorry - do you mean load all features into memory or a subset of them ? If you are working with a very large number of features in a database with a spatial index I think it can be faster to query the database than to query an unindexed in-memory collection. But this issue would be better answered by someone who knows more about it than I do. > And I'm doing queries like: check if this LineString intersect a polygon in > another polygon table. > Would it be faster than your example to loop through the collection I have > and end the loop if I find an intersection? > You can do it that way but you can also create a filter to do the job for you. When working with geometries I find it a bit easier to use FilterFactory directly like this... FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); LineString line = ... Filter intersectFilter = ff.intersects(ff.property("the_geom"), ff.literal(line)); Once again you can do a bounding box filter first, using the bounds of your LineString object, to cut down the running time. You can read a bit more about filters here: http://docs.codehaus.org/display/GEOTDOC/Filter+Examples I'm not sure if I've answered the questions that you were asking. If not, please post again. Michael |