Help FILTER con MAPSERVER

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Help FILTER con MAPSERVER

Pasquale Di Donato-2
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



--
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
Reply | Threaded
Open this post in threaded view
|

Re: Help FILTER con MAPSERVER

Andrea Peri
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:
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:


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



--
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


_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Help FILTER con MAPSERVER

Paolo Corti
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
Reply | Threaded
Open this post in threaded view
|

Re: Help FILTER con MAPSERVER

Pasquale Di Donato-2
@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]>:
> 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



--
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
Reply | Threaded
Open this post in threaded view
|

Re: Help FILTER con MAPSERVER

Andrea Peri
Hai messo il blocco

validation / end
?

senza tale blocco mapserver 6.2 ignora il filtro.

Il giorno 16 maggio 2013 13:28, Pasquale Di Donato <[hidden email]> ha scritto:
@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]>:
> 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



--
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



--
-----------------
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
Reply | Threaded
Open this post in threaded view
|

Re: Help FILTER con MAPSERVER

Pasquale Di Donato-2
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]>:
> 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



--
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
Reply | Threaded
Open this post in threaded view
|

Re: Help FILTER con MAPSERVER

aborruso
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
----------------------------------------------------