C'è qualche buon'anima che mi possa aiutare ad usare il parametro FILTER in un LAYER MapServer?
Vi spiego caso d'uso: visualizzare porzioni di uno shapefile in funzione di un valore specifico di un attributo da passare tramite URL. Es. immaginando che lo shapefile contenga le nazioni europee, vorrei che sia possibile visualizzare la sola Italia con una richiesta tipo:
www.mio.server?service=wms....&request=getmap.....&country=Italy Ho capito che dovrei lavorare con "Run-time substitution" ma lo documentazione di MapServer è un po' scarna, almeno per le mie "conoscenze informatiche"....
Any help? grazie Pasquale _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 638 iscritti al 28.2.2013 |
Non puoi definire il filter
direttamente sulla invocazione senza averlo prima opportumanete
configurato nel mapfile.
Il filtro lo devi definire nel mapfile. definendo anche il valore di default e il blocco per il validation. Poi sulla url della invocazione ci metti il parametro. On 16/05/2013 12:06, Pasquale Di Donato wrote:
_______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 638 iscritti al 28.2.2013 |
In reply to this post by Pasquale Di Donato-2
2013/5/16 Pasquale Di Donato <[hidden email]>:
> C'è qualche buon'anima che mi possa aiutare ad usare il parametro FILTER in > un LAYER MapServer? > > Vi spiego caso d'uso: visualizzare porzioni di uno shapefile in funzione di > un valore specifico di un attributo da passare tramite URL. Es. immaginando > che lo shapefile contenga le nazioni europee, vorrei che sia possibile > visualizzare la sola Italia con una richiesta tipo: > > www.mio.server?service=wms....&request=getmap.....&country=Italy > > Ho capito che dovrei lavorare con "Run-time substitution" ma lo > documentazione di MapServer è un po' scarna, almeno per le mie "conoscenze > informatiche".... > ciao devi passargli un filtro lavorando con SLD nella GetMap, vedi qui i dettagli [1] [1] http://mapserver.org/ogc/sld.html -- Paolo Corti Geospatial software developer web: http://www.paolocorti.net twitter: @capooti skype: capooti _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 638 iscritti al 28.2.2013 |
@Andrea, quanto dici mi è chiaro, ma avrei bisogno di esempi di codice. @Paolo, no SLD.... vorrei fare qualcosa tipo [1]. Purtroppo non riesco ad adattare l'esempio. Invece di una connessione DB io uso uno shapefile e vorrei lavorare su attributi testuali e non numerici...
Se nel mapfile faccio qualcosa tipo: FILTER "Italy" FILTEITEM "country_name" allora vedo solo l'Italia, ma sta roba é statica ed io vorrei fosse dinamica (cioè passando country_name=Italy nella url, come in esempio [1])
Vabbé, comunque grazie per la disponibilità Pasquale Il giorno 16 maggio 2013 12:24, Paolo Corti <[hidden email]> ha scritto: 2013/5/16 Pasquale Di Donato <[hidden email]>: Pasquale Di Donato web: www.padido.eu chat: [hidden email] _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 638 iscritti al 28.2.2013 |
Hai messo il blocco validation / end ? senza tale blocco mapserver 6.2 ignora il filtro.
-- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 638 iscritti al 28.2.2013 |
In reply to this post by Paolo Corti
Allora per chi fosse interessato al caso d'uso, ho risolto grazie a Carmelo Fazio. Per semplicità metto inline un estratto del mapfile: ****************************************************************************************************************
MAP NAME "Filtro MapServer " EXTENT -26 30 37 71 UNITS DD SHAPEPATH "/home/user/data/" SIZE 800 600
IMAGETYPE PNG24 PROJECTION "init=epsg:4326" END WEB METADATA ows_enable_request "*"
END END LAYER NAME "Admin Countries" DUMP true TEMPLATE foo STATUS OFF TYPE POLYGON
DATA "countries" VALIDATION "country" ".*" "default_country" "" END
FILTERITEM "country" FILTER /%country%/ METADATA 'ows_title' "prova filtro"
'ows_srs' "EPSG:4326" END CLASS STYLE COLOR 246 241 223
OUTLINECOLOR 0 0 0 END END END END ******************************************************************************************************************************************************
Una richiesta tipo: localhost/cgi-bin/mapserv?map=/home/user/filtro.map&service=WMS&request=GetMap&blablabla&country=Italy visualizza la sola Italia. Eliminando il parametro "country" vengono visualizzati tutti gli stati.
Ancora grazie a Carmelo Pasquale Il giorno 16 maggio 2013 12:24, Paolo Corti <[hidden email]> ha scritto: 2013/5/16 Pasquale Di Donato <[hidden email]>: Pasquale Di Donato web: www.padido.eu chat: [hidden email] _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 638 iscritti al 28.2.2013 |
Administrator
|
Carmelo Fazio è un grande :)
Andrea Borruso
---------------------------------------------------- twitter: https://twitter.com/aborruso website: https://medium.com/tantotanto 38° 7' 48" N, 13° 21' 9" E ---------------------------------------------------- |
Free forum by Nabble | Edit this page |