I need to place my piechart on Geoserver WMS SLD as <PointSymbolizer> for
my multipolygon layer (PostGIS table). But rather than using centroid of
each row as placement, I need to use centroid of [intersection [my polygon
geom, wms_bbox] ]. Hence the piechart shall be placed on centroid of
appearing part of polygon.

My old question (https://gis.stackexchange.com/a/273534/18383) asked about
this and I got a brilliant answer saying that I have to use
<PointSymbolizer> instead of <TextSymbolizer>. The answer even suggests a
<Geometry> element in SLD to achieve what I want. It works!

Below is the proof (using US States map included in Geoserver as SHP).

[image: PANNING_US_STATE.png]

The problem is, it works when I tried it with US States map (included in
Geoserver as SHP).

But it does not work with:

   1. US States PostGIS table (imported from the SHP included in
   Geoserver), even all rows are valid geometry
   2. My multipolygon PostGIS table (all rows are valid geometry as well)
   3. My SHP exported from my above multipolygon PostGIS table


The error with my multipolygon PostGIS table is as follows
code="internalError"Rendering process failed side location conflict
[(136.81917785227373, -4.9082450034714, NaN) ]

The error with US States PostGIS table is slightly different:
code="internalError"Rendering process failed found non-noded
intersection between LINESTRING ( -76.446869 37.457966, -76.461136
37.255432 ) and LINESTRING ( -76.704681 37.418491, -76.337318
37.177009999999996 ) [ (-76.46093617561398, 37.25826870233377, NaN) ]

So to nail down the problem I tried to dig into the log of GeoServer and
PostgreSQL. First I set GeoServer log to VERBOSE_LOGGING and set
PostgreSQL log_statement
= 'all'.

Then I re-create the thing in GeoServer layer preview and got the above
error message. Then I check PostgreSQL log to find what did GeoServer query
to Postgres. Interestingly if I run the logged query, there's no error at
all in PostGIS, smooth. But GeoServer log got error on that point.

So conclusion so far:

   1. there's error in GeoServer rendering engine while getting
   normal/valid response from PostGIS
   2. SHP has better success rate than PostGIS table (proven by using the
   same US State map as explained above).

Now the question: how to fix this? Did i miss something?

My playing ground:

   - GeoServer 2.14.3 (with chart extension)
   - Apache Tomcat 8.5.32 Server
   - Windows 10 Pro 64-bit on Xeon E5-1660 3GHz, 32GB memory
   - PostgreSQL 9.6.11, PostGIS 2.5
_______________________________________________
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

Reply via email to