This bug report is for a slightly different problem, when working with a geometry collection the ability to filter out only the points and multi-points. -- Jody Garnett
On Mon, 19 Oct 2020 at 02:21, Ron Lindhoudt <rlindho...@yahoo.com> wrote: > You should probably use the existion function `geometryType` in the SLD > rule. > If you don't do that a polygon is visualised as a polygon and also point > (the centre of the polygon) for example. > > The only thing is that there are multiple geometry-types that represent > Point, Polygon and Line. > > Polygon: > - Polygon > - MultiPolygon > - MultiSurface > - CurvePolygon > - GeometryCollection (this is a difficult one!) > > Line: > - LineString > - CircularString > - CompoundCurve > -CompoundRing > - CircularRing > - MultiCurve > - MultiLineString > > Point: > - Point > - Multipoint > > It would be nice if there was a separate function "mainGeometryType" that > just returns Point, Polygon, Line or Collection > > On Monday, 19 October 2020, 10:32:15 CEST, Florian Hoedt < > florian.ho...@thuenen.de> wrote: > > > Hi, > > Sorry for interrupting into this conversation, but: Are you aware that SLD > can style different geometries out of the box? See attached SLD for the > INSPIRE theme Environmental Monitoring Facilities which does use survey > area (Polygon) and representative point (Point) as geometry. But maybe this > is about something different and you can ignore this. > yours, Florian > -- > MSc Florian Hoedt > Head Geoinformatics | OpenData Representative > Thünen Institute, Centre for Information Management > Bundesallee 44 > 38116 Braunschweig > > Tel: +49 531 596-1428 > Mobil: +49 162 92 50 275 > Fax: +49 531 596-1499 > Mail: florian.ho...@thuenen.de > Web: www.thuenen.de > > The Johann Heinrich von Thünen Institute, Federal Research Institute for > Rural Areas, Forestry and Fisheries – Thünen Institute in brief – consists > of 14 specialized institutes that carry out research and provide policy > advice in the fields of economy, ecology and technology. > > ------------------------------ > *Von: *"Jody Garnett" <jody.garn...@gmail.com> > *An: *"groznykh" <groznykh....@gmail.com> > *CC: *"Geoserver USERS" <geoserver-users@lists.sourceforge.net> > *Gesendet: *Montag, 19. Oktober 2020 07:05:10 > *Betreff: *Re: [Geoserver-users] How to apply different styles for > different geometry types in GeometryCollection? > > I think it is a good idea, but have not had time/budget to work on this > myself. > Indeed I have had this draft email replying to you open for a month or so. > I have been very focused on transitioning our build infrastructure, with > some small development implementing mapbox style expression support :) > Do you have any experience with Java? Or if there are any volunteers on > this list interested it should be a combination of: > > 1) https://docs.geotools.org/latest/userguide/tutorial/function.html > > 2) A method similar to: > > public <T> T evaluate(Object object, Class<T> context) { > Expression pointExpression = parameters.get(0); > Geometry geometry = pointExpression.evaluate(object, > Geometry.class); > if( geometry == null) return geometry; > > Expression dimensionExpression = parameters.get(1); > Integer dimension = dimensionExpression.evaluate(object, > Integer.class); > > > switch(dimension) { > case 0: return toPuntal(geometry); > case 1: return toLineal(geometry); > case 2: return toPolygonal(geometry); > default: > throw IllegalArgumentException("Dimension "+dimension+" invalid > (0,1 or 2 supported)"); > } > } > > 3) And then methods to collect each type, this could probably be done a > bit more neatly > > return Geometry toPuntal(Geometry geometry){ > if( geometry instanceof Puntal) return geometry; > if( geometry instanceof GeometryCollection){ > GeometryCollection collection = (GeometryCollection) > geometry; > ArrayList<Point> points = new ArrayList<>(); > for (int i; i<collection.getNumGeometries(); i++){ > Geometry g = collection.getGeometryN(geometry,i); > Geometry = toPuntal(g); > if( g instanceof Point) > points.add( (Point) g ); > else if( g instanceof MultiPoint) { > MultiPoint pts = (MultiPoint) g; > for (int j; j<pts.getNumGeometries(); j++){ > points.add( (Point) pts.getGeometryN(j); > } > } > } > return geometryFactory().createMultiPoint(points.toArray(new > Point[points.size()]); > } > return geometryFactory().createMultiPoint(); > } > > > > On Wed, 23 Sep 2020 at 03:51, groznykh <groznykh....@gmail.com> wrote: > > Hi Jody > > Is there a possibility that such functions would be realized? > > > > -- > Sent from: > http://osgeo-org.1560.x6.nabble.com/GeoServer-User-f3786390.html > > > _______________________________________________ > Geoserver-users mailing list > > Please make sure you read the following two resources before posting to > this list: > - Earning your support instead of buying it, but Ian Turton: > http://www.ianturton.com/talks/foss4g.html#/ > - The GeoServer user list posting guidelines: > http://geoserver.org/comm/userlist-guidelines.html > > If you want to request a feature or an improvement, also see this: > https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer > > > Geoserver-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-users > > > > _______________________________________________ > Geoserver-users mailing list > > Please make sure you read the following two resources before posting to > this list: > - Earning your support instead of buying it, but Ian Turton: > http://www.ianturton.com/talks/foss4g.html#/ > - The GeoServer user list posting guidelines: > http://geoserver.org/comm/userlist-guidelines.html > > If you want to request a feature or an improvement, also see this: > https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer > > > Geoserver-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-users > _______________________________________________ > Geoserver-users mailing list > > Please make sure you read the following two resources before posting to > this list: > - Earning your support instead of buying it, but Ian Turton: > http://www.ianturton.com/talks/foss4g.html#/ > - The GeoServer user list posting guidelines: > http://geoserver.org/comm/userlist-guidelines.html > > If you want to request a feature or an improvement, also see this: > https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer > > > Geoserver-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-users >
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users