SlideShare a Scribd company logo
Advanced cartographic map rendering in
              GeoServer


         Ing. Andrea Aime, GeoSolutions
    Ing. Simone Giannecchini, GeoSolutions




               FOSS4G 2011, Denver
              12th-16th September 2011
Overview

   Who we are
   Example map
   Raster styling
   Scale dependent rules
   Hatches, patterns and dashes
   Point Symbology
   Labeling
   Transformations
   Cross layer filtering
                      FOSS4G 2011, Denver
                     12th-16th September 2011
GeoSolutions
   Founded in Italy in late 2006
   Expertise
    •   Image Processing, GeoSpatial Data Fusion
    •   Java, Java Enterprise, C++, Python
    •   JPEG2000, JPIP, Advanced 2D visualization
   Supporting/Developing FOSS4G projects
       GeoTools, GeoServer
       GeoBatch, GeoNetwork

   Clients
       Public Agencies
       Private Companies

   http://www.geo-solutions.it
                                FOSS4G 2011, Denver
                               12th-16th September 2011
The example map




  FOSS4G 2011, Denver
 12th-16th September 2011
Example map




 FOSS4G 2011, Denver
12th-16th September 2011
Example map




 FOSS4G 2011, Denver
12th-16th September 2011
Example map




 FOSS4G 2011, Denver
12th-16th September 2011
Example map




 FOSS4G 2011, Denver
12th-16th September 2011
Example map




 FOSS4G 2011, Denver
12th-16th September 2011
Raster styling




 FOSS4G 2011, Denver
12th-16th September 2011
A DEM and a color map

   SRTM from USGS
   Standard color map
   Just avoid the nodata values
    with opacity=0
   A bit dull…




                       FOSS4G 2011, Denver
                      12th-16th September 2011
Add hillshade

   GeoServer cannot do
    hillshade
    on its own now
   gdaldem to the rescue:

    gdaldem hillshade -z 5 -s
    111120 srtm_boulder.tiff
    srtm_boulder_hs.tiff -co
    tiled=yes

   Partially transparent




                        FOSS4G 2011, Denver
                       12th-16th September 2011
Overlay the two




  FOSS4G 2011, Denver
 12th-16th September 2011
Scale dependent rules




    FOSS4G 2011, Denver
   12th-16th September 2011
Scale dependent rules

   Too often forgotten or little used, yet very important:
          Hide layers when too zoomed in (raster/vector
           example)
          Progressively show details
          Add more expensive rendering when there are less
           features
   Key to any high performance / good looking map




                         FOSS4G 2011, Denver
                        12th-16th September 2011
Example




 FOSS4G 2011, Denver
12th-16th September 2011
Hide as you zoom in

   Add a MinScaleDenominator to the rule
   This will make the layer disappear at 1:75000
    (towards 1:1)




                  FOSS4G 2011, Denver
                 12th-16th September 2011
Alternative rendering

   Simple rendering at low scale (up to 1:2000)
   More complex rendering when zoomed in (1:1999
    and above)




                  FOSS4G 2011, Denver
                 12th-16th September 2011
Alternative rendering




     FOSS4G 2011, Denver
    12th-16th September 2011
Hatches, patterns and dashes




        FOSS4G 2011, Denver
       12th-16th September 2011
Filling with patterns




    FOSS4G 2011, Denver
   12th-16th September 2011
Filling with TTF fonts




     FOSS4G 2011, Denver
    12th-16th September 2011
Hatches




 FOSS4G 2011, Denver
12th-16th September 2011
Hatches



 vertiline                    horline




   slash                   backslash




    plus                       times

 FOSS4G 2011, Denver
12th-16th September 2011
Dashes




 FOSS4G 2011, Denver
12th-16th September 2011
Dashes




 FOSS4G 2011, Denver
12th-16th September 2011
Point Symbology




  FOSS4G 2011, Denver
 12th-16th September 2011
Point symbols




• 600 loc for 6
  different points types
• Painful…

                        FOSS4G 2011, Denver
                       12th-16th September 2011
Prepare data

   alter table pointlm add column image varchar;

   update pointlm set image = 'shop_supermarket.p.16.png' where MTFCC =
    'C3081' and (FULLNAME like '%Shopping%' or FULLNAME like '%Mall%');
   update pointlm set image = 'peak.png' where MTFCC = 'C3022'

   update pointlm set image = 'amenity_prison.p.20.png' where MTFCC =
    'K1236';
   update pointlm set image = 'museum.p.16.png' where MTFCC = 'K2165';

   update pointlm set image = 'airport.p.16.png' where MTFCC = 'K2451';

   update pointlm set image = 'school.png' where MTFCC = 'K2543';

   update pointlm set image = 'christian3.p.14.png' where MTFCC =
    'K2582';

   update pointlm set image = 'gate2.png' where MTFCC = 'K3066';




                           FOSS4G 2011, Denver
                          12th-16th September 2011
Dynamic symbolizers




    FOSS4G 2011, Denver
   12th-16th September 2011
Labeling




 FOSS4G 2011, Denver
12th-16th September 2011
Line labels




 FOSS4G 2011, Denver
12th-16th September 2011
Point labels




 FOSS4G 2011, Denver
12th-16th September 2011
Polygon labels




  FOSS4G 2011, Denver
 12th-16th September 2011
Label Obstacles




  FOSS4G 2011, Denver
 12th-16th September 2011
Transformations




  FOSS4G 2011, Denver
 12th-16th September 2011
Geometry transformations




       FOSS4G 2011, Denver
      12th-16th September 2011
Geometry transformations




       FOSS4G 2011, Denver
      12th-16th September 2011
Rendering transformations




       FOSS4G 2011, Denver
      12th-16th September 2011
Rendering transformations




       FOSS4G 2011, Denver
      12th-16th September 2011
Cross layer filtering




   FOSS4G 2011, Denver
  12th-16th September 2011
Cross layer filtering




Get all schools close at less than 200m from a main road
                FOSS4G 2011, Denver
               12th-16th September 2011
Cross layer filtering

   Get all the main roads
   Turn then into a single geometry
   Get all the schools within 500 meters from the
    geometry just created

    CQL_FILTER =
     MTFCC='K2543' AND
         DWITHIN(the_geom,
            collectGeometries(
               queryCollection('foss4g:Mainrd',
                                 'the_geom', 'INCLUDE')),
         500, meters)


                     FOSS4G 2011, Denver
                    12th-16th September 2011
Demo and styles

   Demo of most these examples here:
          http://demo1.geo-
           solutions.it/playground/wms/reflect?layers=boulder&
           format=application/openlayers
          http://demo1.geo-
           solutions.it/playground/wms/reflect?layers=boulder_
           dem_tx&format=application/openlayers
   Full data, styles and configuration, ready to use:
          http://demo.geo-
           solutions.it/share/foss4g_data_dir.tar.gz
   Get the slides: http://geo-solutions.blogspot.com/


                         FOSS4G 2011, Denver
                        12th-16th September 2011
The End




        Questions?
   andrea.aime@geo-solutions.it
simone.giannecchini@geo-solutions.it
            FOSS4G 2011, Denver
           12th-16th September 2011

More Related Content

PDF
The status of the GeoServer WPS
PPTX
Spatiotemporal Raster Improvements in GeoServer
PDF
GeoServer on Steroids
PDF
GeoServer on Steroids at FOSS4G Europe 2014
ODP
WMS Performance Shootout 2010
PDF
GeoServer, an introduction for beginners
PDF
Raster data in GeoServer and GeoTools: Achievements, issues and future develo...
PDF
GeoServer presentation @ Italian GFOSS day 2008
The status of the GeoServer WPS
Spatiotemporal Raster Improvements in GeoServer
GeoServer on Steroids
GeoServer on Steroids at FOSS4G Europe 2014
WMS Performance Shootout 2010
GeoServer, an introduction for beginners
Raster data in GeoServer and GeoTools: Achievements, issues and future develo...
GeoServer presentation @ Italian GFOSS day 2008

What's hot (11)

PDF
GFOSS Day 2012 GeoServer Presentation
ODP
WMS Performance Shootout 2009
PDF
Developing Distributed Semantic Systems
PPTX
GeoServer in Production: we do it, here is how!
PDF
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
PDF
GeoServer on Steroids
PDF
State of GeoServer - FOSS4G 2016
ODP
Mapserver vs. geoserver
PDF
Fossgis 2013 GeoServer Presentation
PDF
Using GeoServer for spatio-temporal data management with examples for MetOc a...
PPTX
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
GFOSS Day 2012 GeoServer Presentation
WMS Performance Shootout 2009
Developing Distributed Semantic Systems
GeoServer in Production: we do it, here is how!
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
GeoServer on Steroids
State of GeoServer - FOSS4G 2016
Mapserver vs. geoserver
Fossgis 2013 GeoServer Presentation
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
Ad

More from GeoSolutions (20)

PPTX
MapStore 2 - The Story
PDF
One GeoNode, many GeoNodes
PPTX
Introduction to GeoNode
PPTX
Serving earth observation data with GeoServer: addressing real world requirem...
PDF
GeoServer Feature FRENZY
PDF
State of GeoServer 2.12
PPTX
MapStore 2, modern mashups with OL3, Leaflet and React
PPTX
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
PPTX
Serving earth observation data with GeoServer: addressing real world requirem...
PPTX
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
PPTX
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
PDF
Advanced Security with GeoServer - FOSS4G 2015
PDF
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
PPTX
Mapping the world beyond web mercator - FOSS4G 2015
PDF
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
PDF
Advanced Cartographic Map Rendering in GeoServer
PDF
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
PDF
GeoSolutions Keynote at WebMGS 2015
PPTX
GeoServer beginners gwf_2015
PPTX
Geosolutions gwf-2015-v01.04
MapStore 2 - The Story
One GeoNode, many GeoNodes
Introduction to GeoNode
Serving earth observation data with GeoServer: addressing real world requirem...
GeoServer Feature FRENZY
State of GeoServer 2.12
MapStore 2, modern mashups with OL3, Leaflet and React
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Serving earth observation data with GeoServer: addressing real world requirem...
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Advanced Security with GeoServer - FOSS4G 2015
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Mapping the world beyond web mercator - FOSS4G 2015
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
Advanced Cartographic Map Rendering in GeoServer
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
GeoSolutions Keynote at WebMGS 2015
GeoServer beginners gwf_2015
Geosolutions gwf-2015-v01.04
Ad

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Machine learning based COVID-19 study performance prediction
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
cuic standard and advanced reporting.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Approach and Philosophy of On baking technology
PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
DOCX
The AUB Centre for AI in Media Proposal.docx
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
Machine learning based COVID-19 study performance prediction
Diabetes mellitus diagnosis method based random forest with bat algorithm
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
Building Integrated photovoltaic BIPV_UPV.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Chapter 3 Spatial Domain Image Processing.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
Approach and Philosophy of On baking technology
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
The AUB Centre for AI in Media Proposal.docx

Advanced cartographic map rendering in GeoServer

  • 1. Advanced cartographic map rendering in GeoServer Ing. Andrea Aime, GeoSolutions Ing. Simone Giannecchini, GeoSolutions FOSS4G 2011, Denver 12th-16th September 2011
  • 2. Overview  Who we are  Example map  Raster styling  Scale dependent rules  Hatches, patterns and dashes  Point Symbology  Labeling  Transformations  Cross layer filtering FOSS4G 2011, Denver 12th-16th September 2011
  • 3. GeoSolutions  Founded in Italy in late 2006  Expertise • Image Processing, GeoSpatial Data Fusion • Java, Java Enterprise, C++, Python • JPEG2000, JPIP, Advanced 2D visualization  Supporting/Developing FOSS4G projects  GeoTools, GeoServer  GeoBatch, GeoNetwork  Clients  Public Agencies  Private Companies  http://www.geo-solutions.it FOSS4G 2011, Denver 12th-16th September 2011
  • 4. The example map FOSS4G 2011, Denver 12th-16th September 2011
  • 5. Example map FOSS4G 2011, Denver 12th-16th September 2011
  • 6. Example map FOSS4G 2011, Denver 12th-16th September 2011
  • 7. Example map FOSS4G 2011, Denver 12th-16th September 2011
  • 8. Example map FOSS4G 2011, Denver 12th-16th September 2011
  • 9. Example map FOSS4G 2011, Denver 12th-16th September 2011
  • 10. Raster styling FOSS4G 2011, Denver 12th-16th September 2011
  • 11. A DEM and a color map  SRTM from USGS  Standard color map  Just avoid the nodata values with opacity=0  A bit dull… FOSS4G 2011, Denver 12th-16th September 2011
  • 12. Add hillshade  GeoServer cannot do hillshade on its own now  gdaldem to the rescue: gdaldem hillshade -z 5 -s 111120 srtm_boulder.tiff srtm_boulder_hs.tiff -co tiled=yes  Partially transparent FOSS4G 2011, Denver 12th-16th September 2011
  • 13. Overlay the two FOSS4G 2011, Denver 12th-16th September 2011
  • 14. Scale dependent rules FOSS4G 2011, Denver 12th-16th September 2011
  • 15. Scale dependent rules  Too often forgotten or little used, yet very important:  Hide layers when too zoomed in (raster/vector example)  Progressively show details  Add more expensive rendering when there are less features  Key to any high performance / good looking map FOSS4G 2011, Denver 12th-16th September 2011
  • 16. Example FOSS4G 2011, Denver 12th-16th September 2011
  • 17. Hide as you zoom in  Add a MinScaleDenominator to the rule  This will make the layer disappear at 1:75000 (towards 1:1) FOSS4G 2011, Denver 12th-16th September 2011
  • 18. Alternative rendering  Simple rendering at low scale (up to 1:2000)  More complex rendering when zoomed in (1:1999 and above) FOSS4G 2011, Denver 12th-16th September 2011
  • 19. Alternative rendering FOSS4G 2011, Denver 12th-16th September 2011
  • 20. Hatches, patterns and dashes FOSS4G 2011, Denver 12th-16th September 2011
  • 21. Filling with patterns FOSS4G 2011, Denver 12th-16th September 2011
  • 22. Filling with TTF fonts FOSS4G 2011, Denver 12th-16th September 2011
  • 23. Hatches FOSS4G 2011, Denver 12th-16th September 2011
  • 24. Hatches vertiline horline slash backslash plus times FOSS4G 2011, Denver 12th-16th September 2011
  • 25. Dashes FOSS4G 2011, Denver 12th-16th September 2011
  • 26. Dashes FOSS4G 2011, Denver 12th-16th September 2011
  • 27. Point Symbology FOSS4G 2011, Denver 12th-16th September 2011
  • 28. Point symbols • 600 loc for 6 different points types • Painful… FOSS4G 2011, Denver 12th-16th September 2011
  • 29. Prepare data  alter table pointlm add column image varchar;  update pointlm set image = 'shop_supermarket.p.16.png' where MTFCC = 'C3081' and (FULLNAME like '%Shopping%' or FULLNAME like '%Mall%');  update pointlm set image = 'peak.png' where MTFCC = 'C3022'  update pointlm set image = 'amenity_prison.p.20.png' where MTFCC = 'K1236';  update pointlm set image = 'museum.p.16.png' where MTFCC = 'K2165';  update pointlm set image = 'airport.p.16.png' where MTFCC = 'K2451';  update pointlm set image = 'school.png' where MTFCC = 'K2543';  update pointlm set image = 'christian3.p.14.png' where MTFCC = 'K2582';  update pointlm set image = 'gate2.png' where MTFCC = 'K3066'; FOSS4G 2011, Denver 12th-16th September 2011
  • 30. Dynamic symbolizers FOSS4G 2011, Denver 12th-16th September 2011
  • 31. Labeling FOSS4G 2011, Denver 12th-16th September 2011
  • 32. Line labels FOSS4G 2011, Denver 12th-16th September 2011
  • 33. Point labels FOSS4G 2011, Denver 12th-16th September 2011
  • 34. Polygon labels FOSS4G 2011, Denver 12th-16th September 2011
  • 35. Label Obstacles FOSS4G 2011, Denver 12th-16th September 2011
  • 36. Transformations FOSS4G 2011, Denver 12th-16th September 2011
  • 37. Geometry transformations FOSS4G 2011, Denver 12th-16th September 2011
  • 38. Geometry transformations FOSS4G 2011, Denver 12th-16th September 2011
  • 39. Rendering transformations FOSS4G 2011, Denver 12th-16th September 2011
  • 40. Rendering transformations FOSS4G 2011, Denver 12th-16th September 2011
  • 41. Cross layer filtering FOSS4G 2011, Denver 12th-16th September 2011
  • 42. Cross layer filtering Get all schools close at less than 200m from a main road FOSS4G 2011, Denver 12th-16th September 2011
  • 43. Cross layer filtering  Get all the main roads  Turn then into a single geometry  Get all the schools within 500 meters from the geometry just created CQL_FILTER = MTFCC='K2543' AND DWITHIN(the_geom, collectGeometries( queryCollection('foss4g:Mainrd', 'the_geom', 'INCLUDE')), 500, meters) FOSS4G 2011, Denver 12th-16th September 2011
  • 44. Demo and styles  Demo of most these examples here:  http://demo1.geo- solutions.it/playground/wms/reflect?layers=boulder& format=application/openlayers  http://demo1.geo- solutions.it/playground/wms/reflect?layers=boulder_ dem_tx&format=application/openlayers  Full data, styles and configuration, ready to use:  http://demo.geo- solutions.it/share/foss4g_data_dir.tar.gz  Get the slides: http://geo-solutions.blogspot.com/ FOSS4G 2011, Denver 12th-16th September 2011
  • 45. The End Questions? andrea.aime@geo-solutions.it simone.giannecchini@geo-solutions.it FOSS4G 2011, Denver 12th-16th September 2011