[mapserver-dev] msPostGISLayerWhichShapes() Error : java library set wrong query
Francesco Martinelli
francesco.martinelli at ingv.it
Thu Jan 27 02:07:26 PST 2022
Dear developers,
I have an issue with the java library on the call to *mapObj.draw()*,
of *mapserver
7.6.4*, compiled and running on Ubuntu 20.04
Apparently it is "sensible" to the locale which is:
$ localectl
System Locale: LANG=it_IT.UTF-8
VC Keymap: n/a
X11 Layout: it
X11 Model: pc105
$ locale -c decimal_point
LC_NUMERIC
,
$
I already asked the mapserver-users list, but without success.
*Here is the code*:
mapObj myMap = new mapObj("myMapFile.map");
rectObj originalMapView = myMap.getExtent();
rectObj maxView = new rectObj(-1, -1, -1, -1,
myMap.getUnits().swigValue());
maxView.setMinx(originalMapView.getMinx());
maxView.setMaxx(originalMapView.getMaxx());
maxView.setMiny(originalMapView.getMiny());
maxView.setMaxy(originalMapView.getMaxy());
rectObj myView = new rectObj(-1, -1, -1, -1, 3);
myView.setMinx(*774076.75*);
myView.setMaxx(*1014076.75*);
myView.setMiny(*4875124.5*);
myView.setMaxy(*5115124.5*);
myMap.setExtent(myView);
myMap.setSize(600, 600);
pointObj mousePosition = new pointObj(300, 300, 0);
myMap.zoomPoint(1, mousePosition, 600, 600, myView, maxView);
myMap.draw();
*resulting in the 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)
*and in the ERROR file*:
[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'))
As far as I understand the correct query should 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 the following parameters in mapfile could be of interest to you:
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"
...
Please could you help?
Thank you,
Francesco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-dev/attachments/20220127/9e76cfd0/attachment.html>
More information about the MapServer-dev
mailing list