[mapserver-users] java mapscript + postgis = query use pixel map's limits (SOLVED)

Ludovico Bianchini metlud at yahoo.it
Mon Sep 29 13:29:17 PDT 2008


The error was the directive

TRANSFORM false

in LAYER "segnaletica". 
(http://mapserver.gis.umn.edu/docs/reference/mapscript/index_html#layerobj)

I changed it with

TRANSFORM true

and now A-L-L work fine!!

Ludovico

Ludovico Bianchini ha scritto:
> This is the code
>
> LAYER
>        NAME "segnaletica"
>        STATUS on
>        TYPE POINT
>        TRANSFORM false
>        POSTLABELCACHE true
>        CONNECTION "user=user password=password dbname=dbname 
> host=localhost port=5432"
>        CONNECTIONTYPE postgis
>        DATA "posizionegeoref from rilievi.impianti"
>        CLASS
>            STYLE
>                COLOR 255 99 0
>                SYMBOL "circle"
>                SIZE 100
>            END
>        END
>        PROJECTION
>            "init=epsg:4326"
>        END
>    END
>
> private void zoomIn(mapObj mapObj_o) {
>        double[] extent = explodeExtent();//retrieve the previous map 
> extent from the form data
>        mapObj_o.setExtent(extent[0], extent[1], extent[2], 
> extent[3]);//assign to the map the previous extent
>        pointObj pointObj_o_pix = new 
> pointObj(Integer.parseInt(getMap_x()),Integer.parseInt(getMap_y()), 
> 0);//create a pixel-based point for the user //click
>        rectObj rectObj_o = new rectObj(extent[0], extent[1], 
> extent[2], extent[3],
>                mapscript.MS_FALSE);//create a rectangle based on the 
> previous extent
>        mapObj_o.zoomPoint(2, pointObj_o_pix, WIDTH, HEIGHT, rectObj_o, 
> null);//zoom in the map; WIDTH=600 pixel, HEIGHT=400 pixel
>              draw(mapObj_o);
>    }
>
> private void draw(mapObj mapObj_o){
>            imageObj mapImageObj;
>            String imageName = getImageName();
>            String imagePath = IMAGE_URL + imageName;
>            mapImageObj = mapObj_o.draw();
>            mapImageObj.save(imagePath, mapObj_o);
>            setMappa("/map/" + imageName);
>            
> setCurrent_extent(String.valueOf(mapObj_o.getExtent().getMinx()) + " " +
>                    String.valueOf(mapObj_o.getExtent().getMiny()) + " " +
>                    String.valueOf(mapObj_o.getExtent().getMaxx()) + " " +
>                    
> String.valueOf(mapObj_o.getExtent().getMaxy()));//set the actual 
> extent in a hidden input element of the form
>          }
>
> I've tried also
>
> private void draw(mapObj mapObj_o){
>            toggleLayer(mapObj_o);
>            imageObj mapImageObj;
>            String imageName = getImageName();
>            String imagePath = IMAGE_URL + imageName;
>            mapObj_o.setSize(WIDTH, HEIGHT);
>            mapImageObj = mapObj_o.draw();
>            mapImageObj.save(imagePath, mapObj_o);
>            setMappa("/map/" + imageName);
>            
> setCurrent_extent(String.valueOf(mapObj_o.getExtent().getMinx()) + " " +
>                    String.valueOf(mapObj_o.getExtent().getMiny()) + " " +
>                    String.valueOf(mapObj_o.getExtent().getMaxx()) + " " +
>                    String.valueOf(mapObj_o.getExtent().getMaxy()));
>          }
>
> Umberto Nicoletti ha scritto:
>> On Sun, Sep 28, 2008 at 11:45 AM, Ludovico Bianchini 
>> <metlud at yahoo.it> wrote:
>>  
>>> - Windows Vista Home Premium
>>> - Postgres 8.1
>>> - jvm 1.6.0
>>> - jboss 4.0.3SP1, tomcat 5.5
>>> - struts2
>>> - ms4w 2.3.0 (mapscript.jar, mapscript.dll, all other dlls taken 
>>> from this
>>> pack)
>>> - postgresql-8.2-505.jdbc4.jar
>>>
>>> The query created to extract postgis layer is of the type
>>>
>>> SELECT asbinary(force_collection(force_2d(posizionegeoref)),'NDR') from
>>> rilievi.impianti where posizionegeoref && setSRID('BOX3D(0 0,599
>>> 399)'::BOX3D, find_srid('','rilievi.impianti','posizionegeoref') );
>>>
>>> The BOX3D filter is created using pixel map's limits...(  BOX3D(0 
>>> 0,599 399)
>>>  ) why this?
>>>
>>> I use setExtent() before draw(), all navigation operations work 
>>> fine, why is
>>> the query build against the pixel
>>> dimensions of the resulting image and not against the real dimensions
>>> calculated for the rectangle?
>>>     
>>
>> do you call setExtent before querying and convert image units into 
>> map units?
>>
>>  
>>> Perhaps I am missing some basic instructions, but I don't know what...
>>>
>>> Thanks in advance for any suggestions.
>>> Ludovico
>>> Chiacchiera con i tuoi amici in tempo reale!
>>> http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com
>>> _______________________________________________
>>> mapserver-users mailing list
>>> mapserver-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>>
>>>     
>>
>>
>>   
>
>

Chiacchiera con i tuoi amici in tempo reale! 
 http://it.yahoo.com/mail_it/foot/*http://it.messenger.yahoo.com 




More information about the MapServer-users mailing list