SlideShare a Scribd company logo
1 of 45
Download to read offline
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

What's hot

GFOSS Day 2012 GeoServer Presentation
GFOSS Day 2012 GeoServer PresentationGFOSS Day 2012 GeoServer Presentation
GFOSS Day 2012 GeoServer PresentationGeoSolutions
 
WMS Performance Shootout 2009
WMS Performance Shootout 2009WMS Performance Shootout 2009
WMS Performance Shootout 2009Jeff McKenna
 
GeoServer in Production: we do it, here is how!
GeoServer in Production: we do it, here is how!GeoServer in Production: we do it, here is how!
GeoServer in Production: we do it, here is how!GeoSolutions
 
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...GeoSolutions
 
GeoServer on Steroids
GeoServer on Steroids GeoServer on Steroids
GeoServer on Steroids GeoSolutions
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016GeoSolutions
 
Mapserver vs. geoserver
Mapserver vs. geoserverMapserver vs. geoserver
Mapserver vs. geoserver鸣 饶
 
Fossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationFossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationGeoSolutions
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...GeoSolutions
 
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...GeoSolutions
 

What's hot (11)

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

More from GeoSolutions

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

More from GeoSolutions (20)

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

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 

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