I am afraid we have to keep things on the list. If you really would like to
contact me privately my employer LISAsoft would be happy to arrange a support
contact with you :-)
It seems you are having trouble using a geometry intersects with a literal
bounding box?
Here are some things to try.
* There is a BBOX function which is a fast version of what you are trying to do.
* The geometry functions tend to work with geometry; so try converting your
bounding box to a polygon if you would like to use Intersects.
* Finally be very very sure that your two geometry are in the same coordinate
reference system! This is probably the most common mistake when doing this sort
of thing. Your code example did screen -> world (i.e. map crs). But I am not
sure if I saw you do world -> data (i.e. data crs).
--
Jody Garnett
On Wednesday, 2 May 2012 at 7:13 PM, jérémy lacombe wrote:
> Hi, i got a litle problem but i really don't know why so i prefer don't spam
> the user list and ask before to you :
> The problem is i can do a fliter with proprety but the other filter didn't
> work =/
>
>
>
> void selectFeatures(MapMouseEvent ev) {
>
> System.out.println("Mouse click at: " + ev.getMapPosition());
>
> /*
> * Construct a 5x5 pixel rectangle centred on the mouse click position
> */
> Point screenPos = ev.getPoint();
> Rectangle screenRect = new Rectangle(screenPos.x-2, screenPos.y-2,
> 5000, 5000);
>
> /*
> * Transform the screen rectangle into bounding box in the coordinate
> * reference system of our map context. Note: we are using a naive
> method
> * here but GeoTools also offers other, more accurate methods.
> */
>
> AffineTransform screenToWorld =
> fenMap.getMapPane().getScreenToWorldTransform();
> Rectangle2D worldRect =
> screenToWorld.createTransformedShape(screenRect).getBounds2D();
> ReferencedEnvelope bbox = new ReferencedEnvelope(
> worldRect,
> fenMap.getMapContext().getCoordinateReferenceSystem());
>
>
>
>
>
>
>
> // THE FILTER with CQL WORK PERFECTLY
> /*
> * Create a Filter to select features that intersect with
> * the bounding box
> */
> Filter filter = null;
> try {
> filter = (Filter) CQL.toFilter("OSTRAHLER='5'");
> } catch (CQLException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
>
>
>
>
>
> THIS ONE DOESN'T WORK AT ALL
> //Filter filter = (Filter)
> ff.intersects(ff.property(geometryAttributeName), ff.literal(bbox));
>
> /*
> * Use the filter to identify the selected features
> */
>
>
>
>
> try {
> SimpleFeatureCollection selectedFeatures =
> (SimpleFeatureCollection)
> ImportVecteur2.getFeatureSource().getFeatures(filter);
>
> SimpleFeatureIterator iter = selectedFeatures.features();
> Set<FeatureId> IDs = new HashSet<FeatureId>();
> try {
> while (iter.hasNext()) {
> SimpleFeature feature = iter.next();
> IDs.add(feature.getIdentifier());
>
> System.out.println(" " + feature.getIdentifier());
> }
>
> } finally {
> iter.close();
> }
>
> if (IDs.isEmpty()) {
> System.out.println(" no feature selected");
> }
>
> // displaySelectedFeatures(IDs);
>
> } catch (Exception ex) {
> ex.printStackTrace();
> return;
> }
> }
>
> Date: Mon, 30 Apr 2012 21:49:23 +1000
> From: [email protected] (mailto:[email protected])
> To: [email protected] (mailto:[email protected])
> CC: [email protected]
> (mailto:[email protected])
> Subject: Re: [Geotools-gt2-users] Geologie France
>
> Opps - please keep discussion on the email list. That way more people are
> able to take part and possibly help you?
>
> I think what you may want to do is:
>
> 1) Get the geometry for your selected feature
>
> Geometry geom = feature.getDefaultGeometry();
>
> 2) Take the centre
>
> Coordiante centre = geom.getCentriod();
>
> 3) turn that back into a geometry
>
> Point point = geometryFactory.createPoint( centre );
>
> 4) And then …. buffer the point to obtain a Polygon (it will be a circle)
>
> point.buffer( amount )
>
> The tricky part is determining what the amount should be.
>
> Jody
>
> On Saturday, 28 April 2012 at 11:56 PM, jérémy lacombe wrote:
>
> >
> > Good afternoon,
> >
> >
> > In reality, i just want to select a feature and draw a circle around this
> > feature. But, i don't know how to do that. and i just want to have the
> > property of the feature selected ^^
> >
> > Regards ,
> >
> > ptitdje
> >
> >
> > Date: Sat, 28 Apr 2012 22:27:12 +1000
> > From: [email protected] (mailto:[email protected])
> > To: [email protected] (mailto:[email protected])
> > CC: [email protected]
> > (mailto:[email protected])
> > Subject: Re: [Geotools-gt2-users] Geologie France
> >
> > The tutorials are written for GeoTools 8.
> > - http://docs.geotools.org/latest/userguide/tutorial/map/style.html
> >
> > What is the link to "opensourcejavaphp.net (http://opensourcejavaphp.net)
> > you found? The web is a strange place …
> >
> > You can find the older (i.e. stable) copy of the tutorials here:
> > - http://docs.geotools.org/stable/tutorials/
> >
> > Please keep in mind that "selection" is a concept for your application.
> > GeoTools is just providing the ability to work with features; and draw
> > features. That selection tutorial focuses on "draw" some features that have
> > been considered selected in that example. You may wish to handle the idea
> > of selection in the same manner for your application?
> >
> > Jody
> >
> > > Moving to the small problem I encountered:
> > > -----> I followed the tutorial for display and loading the shapefile.
> > > PERFECT = D
> > > ------> I took a second tutorial (
> > > http://www.opensourcejavaphp.net/java/geotools/org/geotools/demo/SelectionLab.java.html)
> > > to select one feature at a click on the JMapPane. NOT PERFECT = / Let me
> > > explain I have a compilation error in this online tutorial:
> > > mapFrame = new JMapFrame (map);
> >
>
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users