The importance of being dynamic (for a WFS)L’importanza di essere dinamico (per un WFS)

These are the results of a “personal” functionality comparison on some GIS desktop:

– web feature service:  Sardinia Region WFS (2000 objects limited)

– layer used: usoSuolo2008

Udig 1.2: AUTOMATIC load of the current map extent objects; AUTOMATIC new request during the navigation (zooming, pan, ecc.); preservation of the thematization; AUTOMATIC load of the web service intire list layer;

gvSIG 1.9: MANUAL load of the current map extent objects; MANUAL new request during the navigation (zooming, pan, ecc.);  NO preservation of the thematization; AUTOMATIC load of the web service intire list layer;

quantum GIS 1.3: NO load of current map extent objects; AUTOMATIC load of the web service intire list layer;

 

ESRI arcGIS 9.3.1: NO load of current map extent objects; NO loading intire list layer of the web service.

 

As you see with these requirements and these Web Feature Service charateristics the best GIS desktop that provide “dynamic WFS request funcionality” is Udig 1.2  followed by gvSIG 1.9, Qgis 1.3 and arcGIS 9.3.1.La maggior parte dei sotware GIS forniscono la possibilità di accedere in maniera più o meno user friendly a servizi di mappe (es. servizi OGC); in particolare mi riferisco al servizio WFS (Web Features Service). In questo articolo vorrei mettere in evidenza l’importanza di poter gestire questa funzionalità in modo dinamico.

Ho eseguito alcuni test funzionali su diversi software (ESRI ArcGIS arcview 9.3.1, gvSIG 1.9, Quatum GIS 1.3 e Udig 1.2) che permettono l’utilizzo del servizio WFS. Come web service di riferimento ho utilizzato quello della Regione Sardegna (limitato a 2000 oggetti/per singola richiesta – per evitare crash del sistema), ed in particolare il layer “usoSuolo2008”.  Con un tematismo così complesso non è pensabile l’aumento  della “capacità di esposizione” del web server senza comprometterne la stabilità e le performance; d’altra parte deve essere possibile una gestione “smart” delle informazioni geografiche esposte.

Questo requisito fondamentale è soddisfatto in maniera completa solo dal sw Udig 1.2M6 ed in maniera parziale dal sw gvSIG 1.9; non viene invece soddisfatto da ESRI ArcGIS arcview 9.3.1 e da Quatum GIS 1.3:

Udig 1.2M6: consente di caricare automaticamente tutti gli elementi esposti dal web server (2000 in questo caso) del layer richiesto qualunque sia il map extent il sw GIS effettua in automatico una nuova richiesta al servizio WFS mostrando tutti i 2000 oggetti ricadenti nel nuovo map extent. Inoltre qualsiasi tematizzazione venga associato al layer essa viene mantenuta durante la navigazione (zoom in, zoom out, panning, ecc.);

gvSIG 1.9: consente di caricare manualmente tutti gli elementi esposti dal web server (2000 in questo caso) del layer richiesto qualunque sia il map extent l’utente deve effettuare manualmente una nuova richiesta al servizio WFS mostrando tutti i 2000 oggetti ricadenti nel nuovo map extent. Qualsiasi tematizzazione venga associata al layer essa non viene mantenuta durante la navigazione (zoom in, zoom out, panning, ecc.);

Quatum GIS 1.3: gestione “statica” della richiesta al servizio WFS , cioè vengono caricati sempre i primi 2000 elementi esposti dal servizio qualunque sia l’inquadramento di mappa definito dall’utente rendendo inutile in queste condizioni l’utilizzo del servizio WFS per layer complessi.

ESRI ArcGIS arcview 9.3.1: gestione “statica” della richiesta al servizio WFS , cioè vengono caricati sempre i primi 2000 elementi esposti dal servizio qualunque sia l’inquadramento di mappa definito dall’utente rendendo inutile in queste condizioni l’utilizzo del servizio WFS per layer complessi. Inoltre arcGIS non consente la visualizzazione dell’intera lista di layer fornita dal servizio WFS, è necessario abilitare diverse connessioni.

Quindi dai  risultati di questo test il software che meglio si adatta all’utilizzo di un servizio WFS  dinamico è Udig 1.2.

5 Responses to The importance of being dynamic (for a WFS)L’importanza di essere dinamico (per un WFS)
  1. nicogis ha detto:

    Ciao Michele volevo fare una precisazione.
    Leggendo il tuo articolo sembra che la limitazione dei 2000 non segua le specifiche OGC nel senso che se la regione Sardegna voleva limitare lo ‘scaricamento’ delle feature doveva impostare il parametro DefaultMaxFeatures. Se, ad esempio, imposta 2000 come DefaultMaxFeatures e nella richiesta non viene passato il maxfeatures verrano restituite 2000 features ma se un client fa una richiesta richiedento un maxfeatures di 3000 dovrà restituire max 3000 features. Quindi indipendentemente dal dinamico o meno nel caso specifico c’è anche un problema a monte perchè in un certo extent non so quali sono le feature che mancano se me ne restituisce 2000, lo so solo se sono meno di 2000 …. Quindi questo servizio non è impostato correttamente.

    Nicogis (blogspot.nicogis.com)

    Il servizio di wfs

  2. admin ha detto:

    Ciao Nicogis,
    la tua osservazione è più che pertinente. In verità in questo momento il Web Feature Server della Regione Sardegna è in una fase di tuning: infatti, esponendo circa 150 tematismi pubblici o sotto ACL alcuni dei quali si compongono di parecchie centinaia di migliaia di elementi, è necessario porre delle limitazioni alle richieste effettuate. Comunque a prescindere dalle specifiche OGC il mio test mirava solo a mettere in evidenza la funzionalità. Faccio l’esempio del layer degli “elementi idrici” del DBTopografico che mi sembra di ricordare abbia circa 2-300.000 features: se avessi il mio map extent corrente vorrei che fossero caricati solo gli elementi ricadenti al suo interno, con o senza limitazioni, e se faccio un pan o uno zoom vorrei che il sw rinnovasse la richiesta conseguente a questa azione automaticamente. In caso contrario che tipo di infrastruttura server e che tipo di client dovrei avere per gestire il processo?
    Quindi il fatto di gestire in modo dinamico le richieste al WFS migliora notevolmente, a mio parere, le performance sia lato server che lato client.

  3. nicogis ha detto:

    Parlo per quel riguarda ArcGIS.
    Tecnicamente penso che non venga fatta dinamicamente perchè passa dal DI di Safe Software e quindi gli eventi arcmap poi non vengono “sentiti” (cambio extent). Lato sviluppo comunque è un’operazione che può essere fatta facendo ripetere la richiesta sul cambio extent della map.

  4. admin ha detto:

    mmmm… ho capito.
    Comunque sia chiaro che l’articolo voleva solo mettere in evidenza la possibilità di gestire questa particolare funzionalità per alcuni software GIS, non quella di fare una classifica assoluta della bontà di un sw GIS rispetto all’altro; infatti penso che sia inconfutabile il fatto che una classifica assoluta del miglior GIS desktop in circolazione sia IMPOSSIBILE da fare senza circoscriverla ad un particolare e determinato requisito funzionale o non funzionale.
    Ti ringrazio per il contributo e se non hai niente in contrario aggiungerei il link del tuo Blog alla mia lista.

    ciao
    Michele

  5. nicogis ha detto:

    Nessun problema anzi ti ringrazio. Se può essere utile alla comunità gis ben venga