presentations



presentations

0 0


presentations

live presentations at conference tfa2015

On Github geobeyond / presentations

Un visualizzatore smart di traffico in tempo reale

Francesco Bartoli

Chi siamo

  • Startup innovativa esperta in Soluzioni geospaziali e Sistemi di identità e accesso

  • Partner ufficiali Boundless Spatial Inc. in qualità di Solution Provider

  • Socio fondatore RIOS - Rete Italiana Open Source Professionale

Un piattaforma geospaziale integrata

I suoi componenti open source

E' da poco disponibile la release 4.6 con gli ultimi aggiornamenti dei componenti e risoluzione di bug!

Un pacchetto d'installazione multipiattaforma (download):

Caratteristiche

  • Soluzione GIS completa e rilasciata alla community con licenza GPLv2
  • Architettura basata su SOA e REST
  • Conforme agli standard OGC e alla direttiva INSPIRE
  • Facile da installare e pronta all'uso
  • Interoperabile, modulare e altamente configurabile
  • Supporta configurazioni in cluster e in alta affidabilità
  • Facile da estendere con plugin middleware e frontware
  • Integrata OOTB con le mappe OpenStreetMap

Sorgenti di dati

Nativa

Database: PostGIS, H2

Estensioni supportate da GeoServer

Database: Oracle Spatial, MySQL Server Spatial, Microsoft SQL Server e Azure, DB2 Spatial, ESRI ArcSDE, Teradata

Big data: MongoDB, Apache Accumulo, SOLR

Dati spaziali in versionamento: GeoGig

Formati File: Shapefile, Driver OGR/GDAL, CSV, GeoTIFF, WorldImage, GTOPO30, ImageMosaic

Architettura logica

Implementazioni degli Standard

Servizi di Web Mapping e stili

Pubblicazione di un layer con n differenti stili richiamabili a runtime

http://localhost:8080/geoserver/wms?request=GetMap&service=WMS&version=1.1.1&layers=t4all%3Astrade&styles=traffico_base

Stili SLD e CSS

<!-- Stile linea con classificazione stradale -->
<FeatureTypeStyle>
 <Rule>
   <Name>strada-locale</Name>
   <ogc:Filter>
     <ogc:PropertyIsEqualTo>
       <ogc:PropertyName>tipo</ogc:PropertyName>
       <ogc:Literal>strada-locale</ogc:Literal>
     </ogc:PropertyIsEqualTo>
   </ogc:Filter>
   <LineSymbolizer>
     <Stroke>
       <CssParameter name="stroke">#009933</CssParameter>
       <CssParameter name="stroke-width">2</CssParameter>
     </Stroke>
   </LineSymbolizer>
 </Rule>
</FeatureTypeStyle>

Servizi di Web Mapping e stili(2)

Funzioni e trasformazioni geometriche possono essere applicate alla componente geometrica del layer ed eseguite a runtime nello stile:

<!-- Estrazione vertici dal grafo stradale -->
<PointSymbolizer>
    <Geometry>
        <ogc:Function name="vertices">
            <ogc:PropertyName>the_geom</ogc:PropertyName>
        </ogc:Function>
    </Geometry>
    <Graphic>
        <Mark>
            <WellKnownName>square</WellKnownName>
                <Fill>
                    <CssParameter name="fill">#FF0000</CssParameter>
                </Fill>
        </Mark>
        <Size>6</Size>
    </Graphic>
</PointSymbolizer>

Visualizzatore di traffico

Funzionalità principali:

  • Flussogrammi (strisce poligonali) invece di linee

  • Gestione della larghezza del flussogramma

  • Gestione del tipo di raccordo tra flussogrammi contigui (squadrato o arrotondato)

  • Gestione della distanza di offset dal centro strada

  • Gestione del senso di marcia (anglosassone e non)

  • Invarianza di scala on/off

L'algoritmo fluxomajic

Algoritmo di analisi e tematizzazione del traffico stradale in un’area geografica:

Linestring --> Polygon

Il plugin fluxomajic

  • Libreria J2EE basata sulle API GeoTools
  • Installazione dei binari come estensione sotto la directory WEB-INF/lib di GeoServer
  • Funzione fluxo richiamabile direttamente nello stile SLD
  • Codice sorgente rilasciato con licenza LGPL sul repository GitHub https://github.com/geobeyond/fluxomajic

La funzione fluxomajic

http://localhost:8080/geoserver/wms?request=GetMap&service=WMS&version=1.1.1&layers=t4all%3Astrade&styles=traffico_fluxo

Stile del visualizzatore smart

<!-- Stile linea con algoritmo fluxomajic -->
<PolygonSymbolizer uom="http://www.opengeospatial.org/se/units/pixel">
    <Geometry>
        <ogc:Function name="fluxo">
            <ogc:PropertyName>shap</ogc:PropertyName>  <!-- Layer's attribute name -->
            <ogc:Literal>5</ogc:Literal>              <!-- Offset; expressed in pixel -->
            <ogc:Literal>5</ogc:Literal>              <!-- Width; expressed in pixel -->
            <ogc:Literal>0</ogc:Literal>              <!-- Drive side;   0 = RIGHT(default),
                                                                         1 = LEFT -->
            <ogc:Literal>4</ogc:Literal>              <!-- Number of quandrants (number of facets
                                                           into which to divide a fillet of
                                                           90 degrees);  16(default) -->
            <ogc:Literal>3</ogc:Literal>              <!-- ENDCAP style; 1 = ROUND(default),
                                                                         2 = FLAT,
                                                                         3 = SQUARE -->
            <ogc:Literal>1</ogc:Literal>              <!-- JOIN style;   1 = ROUND(default),
                                                                         2 = MITRE,
                                                                         3 = BEVEL -->
            <ogc:Literal>2</ogc:Literal>              <!-- Scaling Width (if the width has to scale
                                                           according to zoom level);
                                                                         1 = YES(default),
                                                                         2 = NO -->
            <ogc:Literal>3</ogc:Literal>            <!-- Minimum length (in pixel) of the diagonal
                                                      of the bounding box of the single geometry
                                                      to run the drawn process;  3(default) -->
            <ogc:Function name="env">                 <!-- envs (fixed and mandatory) -->
                <ogc:Literal>wms_crs</ogc:Literal>
            </ogc:Function>
            <ogc:Function name="env">
                <ogc:Literal>wms_width</ogc:Literal>
            </ogc:Function>
            <ogc:Function name="env">
                <ogc:Literal>wms_height</ogc:Literal>
            </ogc:Function>
            <ogc:Function name="env">
                <ogc:Literal>wms_bbox</ogc:Literal>
            </ogc:Function>
        </ogc:Function>
    </Geometry>
    <Fill>
        <CssParameter name="fill">
            <ogc:Literal>#33BA2E</ogc:Literal>
        </CssParameter>
    </Fill>
</PolygonSymbolizer>

Esempi di visualizzazione

Esempi di visualizzazione

Esempi di visualizzazione

Esempi di visualizzazione

Credits

  • End User: 5T - Infomobilità Regione Piemonte www.muoversinpiemonte.it

  • Sponsor: SISTeMA ITS – Sistema OPTIMA di simulazione del traffico

Domande?

Spero nessuna vista l'ora! :)

http://www.geobeyond.it - @geobeyond

francesco.bartoli@geobeyond.it - @francbartoli

RIOS - http://www.reteitalianaopensource.net

BUON PRANZO!!!

Geobeyond Srl