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:
Line:
- LineString
- CircularString
- CompoundCurve
-CompoundRing
- CircularRing
- MultiCurve
- MultiLineString
Point:
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.hoedt@anonymised.com 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.hoedt@anonymised.com
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.garnett@anonymised.com
An: “groznykh” groznykh.dev@anonymised.com
CC: “Geoserver USERS” geoserver-users@anonymised.comrceforge.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:
-
https://docs.geotools.org/latest/userguide/tutorial/function.html
-
A method similar to:
public T evaluate(Object object, Class 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)”);
}
}
- 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 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.dev@anonymised.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:
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:
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:
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@anonymised.comts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users