[Gfoss] openlayers + postgis

G. Allegri giohappy a gmail.com
Gio 26 Nov 2009 10:00:38 CET


Ma perché vuoi settare l'extent come 900913 in Mapserver?
Io l'extent lo setto secondo il CRS dei miei dati, es. 3003 o 4326, ma
mai l'ho fatto per il 900913. Piuttosto lo dovrai settare in OL, e per
farlo potresti usare una select in postgis:

select astext(getbbox(st_collect(transform(the_geom,900913))))

è un esempio, così su due piedi. Probabilmente c'è un modo anche più elegante...

giovanni

Il 26 novembre 2009 01.06, beppe <beppenapo a gmail.com> ha scritto:
> Grazie per la risposta e mi scuso con tutti per i toni della mia
> precedente mail, ma è frustrante non capire dove si sta sbagliando!!!
> Comunque ho fatto tutto come suggeritomi, l'unico problema che mi rimane
> è capire come settare l'extent in mapserver:
> per openlayers ho usato il metodo SetCenter, dando lon e lat, ma
> continuo a non capire come recuperare l'extent in epsg 900913 per
> mapserver...so che è una cavolata ma, sarà l'ora, la polenta coi funghi
> o la grappa austriaca, fatto sta che il criceto si deve essere
> addormentato!!!
>
> -beppe-
>
> Il giorno mer, 25/11/2009 alle 18.53 +0100, G. Allegri ha scritto:
>> E' un pezzo che non uso layer 3003 direttamente in Mapserver (in
>> genere, adesso, li riproietto prima in UTM32N/WGS84, epsg:32032),
>> comunque io ho sempre inserito la definizone dello SphericalMercator
>> sia in PostGIS che nel file epsg di proj (/usr/share/proj/epsg sulla
>> mia macchina)
>>
>> <900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0
>> +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs
>>
>> Poi, nel mapfile esponevo i servizi con tutti i e tre gli srs:
>>
>> wfs_srs "EPSG:4326 EPSG:900913 EPSG:3003"
>>
>> ma da OL ho sempre chiamato direttamente il servzio usando il 900913,
>> così da non delegare a OL la riproiezione ma a Mapserver, usando
>> ovviamente la proiezione nelle opzioni di OL:
>>
>> projection: new OpenLayers.Projection("EPSG:900913")
>>
>> gio
>
>
>
>> Il 25 novembre 2009 18.20, beppe <beppenapo a gmail.com> ha scritto:
>> > Provo e riprovo...inutilmente!
>> > Ho letto millemila post/thread/pdf/blog e altre diavolerie; Sulla
>> > mailing list di openlayers c'è chi dice addirittura che la gestione
>> > dell'epsg 3003 non è supportata dal nostro OL!!!
>> > Ho provato ad aggirare l'ostacolo passando da geoserver, ma anche lì è
>> > stato un fallimento!
>> > Una considerazione: ma se openlayer è il futuro del webmapping (lo penso
>> > davvero) e postgis è "leader nel settore", perché è così difficile
>> > pubblicare anche solo un livello?
>> > Ricapitolo per chi si fosse messo in ascolto solo ora e abbia a cuore la
>> > mia salute mentale:
>> > ho una tabella postgis MULTIPOINT, 2d, srid 3003. Mi piacerebbe
>> > pubblicarla con openlayer...dove potrebbe essere l'inghippo? Io non sono
>> > in grado, evidentemente, di vederlo...ogni consiglio è ben accetto,
>> > anche di smettere con l'informatica ;)
>> >
>> > Grazie mille
>> >
>> > -beppe-
>> >
>> > Il giorno ven, 20/11/2009 alle 20.04 +0100, beppe ha scritto:
>> >> Faccio un passo indietro:
>> >> > Se il tuo layer non si vede potrebbero esserci dei problemi non
>> >> > di proiezione, ma proprio di layer. Prova a caricare il WFS in
>> >> > Qgis, oppure con il brower fai delle richieste GetCapabilities e
>> >> > GetFeature (vedi sempre gli esempi su
>> >> > http://www.rigacci.org/openlayers/).
>> >> >
>> >> Credo proprio che il problema sia "a monte".
>> >> Ho seguito le tue indicazioni ed effettivamente mi sono reso conto che,
>> >> forse, il problema non è di open layers.
>> >>
>> >> 1. Qgis carica tranquillamente la tabella postgis
>> >>
>> >> 2. Facendo la seguente richiesta al browser, l'immagine viene stampata
>> >> correttamente:
>> >> http://localhost/cgi-bin/mapserv?map=/var/www/mtsc-2.1/config/default/map.map&layer=confini_com&mode=map
>> >>
>> >> 3. GetCapabilities mi da un file xml "vuoto" ovvero senza nessun dato su
>> >> bbox, latlon o srs ecc.
>> >>
>> >> 4. GetFeature mi da il seguente errore: "msWFSGetFeature(): WFS server
>> >> error. TYPENAME 'confini_com' doesn't exist in this server.  Please
>> >> check the capabilities and reformulate your request."
>> >>
>> >> 5. Ho guardato il tuo mapfile, ho notato che come proiezione generale
>> >> hai usato l'epsg 900913. Ho provato a cambiare il mio mapfile sulla
>> >> falsariga del tuo mettendo come proiezione generale epsg:900913, come
>> >> proiezione del layer (originariamente in epsg:3003) la 4326, ma ho un
>> >> errore: "msProcessProjection(): Projection library error. no options
>> >> found in 'init' file". In calce vi posto il mapfile.
>> >>
>> >> 6. Giustamente mi fai notare che se la proiezione nativa di OL e la
>> >> 900913, l'extent deve essere nelle coordinate giuste...domanda stupida:
>> >> come recupero l'extent in epsg:900913? Da OpenStreetMap recupero
>> >> longitudine e latitudine e qgis (uso la versione 1.3) non supporta la
>> >> 900913 (ho provato a vedere sul sito di spatial reference, dove danno
>> >> "gli estremi" della proiezione[1]...ammetto di non aver controllato se
>> >> la proiezione è supportata da postgis, eventualmente devo inserirla?).
>> >>
>> >> 7. Devo agire in qualche modo sulla tabella di Postgis?
>> >>
>> >> Grazie mille per l'aiuto, è abbastanza importante per me riuscire
>> >> risolvere questo problema!
>> >>
>> >> -beppe-
>> >>
>> >> [1] http://spatialreference.org/ref/sr-org/6627/
>> >>
>> >> ------------mapfile-------------------
>> >> MAP
>> >> NAME "Vervò"
>> >> EXTENT  653890.824038 5121367.412500 673982.300962 5139410.087500
>> >> UNITS meters
>> >> SIZE 600 500
>> >> SHAPEPATH "../../../mtsc_data"
>> >> SYMBOLSET "../common/symbols/symbols-pmapper.sym"
>> >> FONTSET "../common/fonts/msfontset.txt"
>> >> RESOLUTION 96
>> >> IMAGETYPE png
>> >> INTERLACE OFF
>> >> "init=epsg:900913"
>> >> END
>> >>
>> >> WEB
>> >>   TEMPLATE "map.html"
>> >>   IMAGEPATH "/var/www/tmp/"
>> >>   IMAGEURL "/tmp/"
>> >>   METADATA
>> >>     wfs_title          "Confini comunali"
>> >>     wfs_onlineresource
>> >> "http://localhost/cgi-bin/mapserv?map=/home/www/mtsc-2.1/config/default/map.map&"
>> >>     wfs_srs            "EPSG:900913"
>> >>
>> >>   END  # Metadata
>> >> END  # Web
>> >>
>> >>   LAYER
>> >>     NAME 'confini_com'
>> >>     TYPE POLYGON
>> >>     CONNECTIONTYPE postgis
>> >>     CONNECTION "dbname='vervo' host=localhost port=5432 user='xxxxx'
>> >> password='xxxxxx'"
>> >>     DATA 'confini_com FROM public.dati_amm_terr using unique
>> >> "id_dati_amm" using SRID=3003'
>> >>     METADATA
>> >>       'wms_title' 'dati_amm_terr'
>> >>     END
>> >>     STATUS DEFAULT
>> >>     TRANSPARENCY 100
>> >>     PROJECTION
>> >>       "init=epsg:4326"
>> >>     END
>> >>     CLASS
>> >>        NAME 'confini_com'
>> >>        STYLE
>> >>          SYMBOL 0
>> >>          SIZE 2
>> >>          OUTLINECOLOR 0 0 0
>> >>          COLOR 11 54 104
>> >>        END
>> >>     END
>> >>   END #layer
>> >> END #map
>> >
>> > _______________________________________________
>> > Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
>> > Gfoss a faunalia.it
>> > http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
>> > Questa e' una lista di discussione pubblica aperta a tutti.
>> > I messaggi di questa lista non rispecchiano necessariamente
>> > le posizioni dell'Associazione GFOSS.it.
>> >
>
>


Maggiori informazioni sulla lista Gfoss