[mapserver-users] msPostGISLayerWhichShapes() Error : java library set wrong query

Rahkonen Jukka (MML) jukka.rahkonen at maanmittauslaitos.fi
Wed Jan 26 11:12:33 PST 2022


Hi,

I wonder if it could be related to which locale Java detects  on your computer – Italian (or Finnish) computer -> comma as a separator. Maybe something that deals around the same thing https://stackoverflow.com/questions/4713166/decimal-separator-in-numberformat.

-Jukka Rahkonen-

Lähettäjä: MapServer-users <mapserver-users-bounces at lists.osgeo.org> Puolesta Francesco Martinelli
Lähetetty: keskiviikko 26. tammikuuta 2022 19.00
Vastaanottaja: mapserver-users at lists.osgeo.org
Aihe: [mapserver-users] msPostGISLayerWhichShapes() Error : java library set wrong query

Hi all,
I have a java program calling the method draw() of class edu.umn.gis.mapscript.mapObj
after I compiled mapserver 7.6.4 on Ubuntu 20.04

The result produce the following error:
java.lang.UnknownError: msDrawMap(): Image handling error. Failed to draw layer named 'MyLayer'.;msPostGISLayerWhichShapes(): Query error. Error executing query. Check server logs
edu.umn.gis.mapscript.mapscriptJNI.mapObj_draw(Native Method)
edu.umn.gis.mapscript.mapObj.draw(mapObj.java:397)

In mapfile I set the parameters:
CONFIG "MS_ERRORFILE" "myfile"
DEBUG 6
...
LAYER
    CONNECTIONTYPE postgis
    DATA "the_geom FROM (SELECT * FROM classi_comuni WHERE tipo_area = 2 ORDER BY tipo_area DESC) AS confini USING UNIQUE gid"
    CLASSITEM "my_column"
...
and in the error file I got the following message:
[Wed Jan 26 17:14:19 2022].558530 msDrawMap(): rendering using outputformat named png24 (AGG/PNG).
[Wed Jan 26 17:14:19 2022].569532 msPostGISLayerWhichShapes(): Error (ERROR:  parse error - invalid geometry
HINT:  "POLYGON((774076,75" <-- parse error at position 18 within geometry
) executing query: select "my_column"::text,ST_AsBinary(("the_geom"),'NDR') as geom,"gid"::text from (SELECT * FROM classi_comuni WHERE tipo_area = 2 ORDER BY tipo_area DESC) AS confini where "the_geom" && ST_GeomFromText('POLYGON((774076,75 4875124,5,774076,75 5115124,5,1014076,75 5115124,5,1014076,75 4875124,5,774076,75 4875124,5))',find_srid('','classi_comuni','the_geom'))
[Wed Jan 26 17:14:19 2022].569545 msPostGISLayerWhichShapes(): Query error. Error executing query. Check server logs
[Wed Jan 26 17:14:19 2022].569605 msDrawMap(): Image handling error. Failed to draw layer named 'MyLayer'.

I checked the error is caused by decimal separators being commas instead of dots.
As far as I understand the correct query would be (in red the changes):
select "my_column"::text,ST_AsBinary(("the_geom"),'NDR') as geom,"gid"::text from (SELECT * FROM classi_comuni WHERE tipo_area = 2 ORDER BY tipo_area DESC) AS confini where "the_geom" && ST_GeomFromText('POLYGON((774076.75 4875124.5,774076.75 5115124.5,1014076.75 5115124.5,1014076.75 4875124.5,774076.75 4875124.5))',find_srid('','classi_comuni','the_geom'))


I think I should set something during the compilation of java mapserver library.
Please can someone drive me on how to solve it?


Thank you,
Francesco



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20220126/cce296db/attachment.html>


More information about the MapServer-users mailing list