SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
FOSS4G 2011, Denver, CO

                        Common pitfalls
                    for users of OpenLayers
                             Or:
              “Why are my features at the equator
                    when they shouldn't“


                    Marc Jansen, terrestris GmbH & Co. KG

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   1
Table of contents
   ●   Introduction
   ●   Methodology
   ●   Common pitfalls
   ●   Homework
       or how to improve
       OpenLayers

                                                                     [pitfall]




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“               2
Introduction – about me
   ●   Marc Jansen
       ●   Developer and project manager
           @ terrestris
       ●   Frontend and
           OpenSource-GIS-Stack
       ●   Co-Author „OpenLayers —
           Webentwicklung mit dynami-
           schen Karten und Geodaten“
            (ISBN 978-3-937514-92-5)
       ●   Trunk committer OpenLayers
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   3
Introduction – about terrestris
   ●   OpenSource WebGIS Technologies
       ●   Softwaredevelopment
       ●   Training & Consulting
       ●   OpenSource advocates
   ●   Geoportals, Geodata, Standards...
   ●   Partner of OpenGeo
   ●   Sponsoring FOSS4G, FOSSGIS
   ●   Associate member of OGC
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   4
Introduction – this talk
   ●   This talk will deal with OpenLayers...


   ●   … a quick poll




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   5
Raise your hands, please


         Who knows OpenLayers



                                           ?
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   6
Raise your hands, please


                 Who has developed
                 using OpenLayers


                                           ?
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   7
Raise your hands, please


            Who knows the
       online API-documentation


                                           ?
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   8
Raise your hands, please


            Who thinks the
       online API-documentation
              totally rocks

                                           ?
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   9
Raise your hands, please




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   10
Methodology
   ●   This is not a scientific talk
   ●   Sources:
       ●   OpenLayers-User List                                  [userlist]

       ●   Stack Overflow                                        [stackoverflow]

       ●   Twitter                                               [twitter]

       ●   My experience




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“                 11
Vectors
   ●   Many problems circle around vectors in
       OpenLayers
       ●   Styling
       ●   Performance
       ●   Custom Select-Tools
       ●   Get Features from services
       ●   use cases range from easy to complex



2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“       12
Styling Vectors
   ●   You can set
       ●   style for a feature
       ●   style for a layer
       ●   stylemap for a layer
            –   render intents
            –   attributive '${statusClass}'
            –   rule based
   ●   Complex styling options


2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“     13
Performance of Vectors
   ●   Internet Explorer
       has big issues rendering
       many (> ~250) features
   ●   Usual suggestion
       ●   Raster layer for display
       ●   Limit features
       ●   Cluster strategies                                        [ie-logo]


       ●   Drop support for IE
           (often not an option)

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“         14
Performance of Vectors




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   15
Custom Select-Tools for Vectors
   ●   Select by a box
       ●   { box: true }
   ●   Select by a polygon
       ●   { poly: true }
       ●   (currently not available!)




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   16
Getting Features from a service
    var kml = new OpenLayers.Layer.Vector("KML", {
        strategies: [
            new OpenLayers.Strategy.Fixed()
        ],
        protocol: new OpenLayers.Protocol.HTTP({
            url: "kml/sundials.kml",
            format: new OpenLayers.Format.KML({
                extractStyles: true,
                extractAttributes: true
            })
        })
    });


 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   17
Projections
   ●   Projections in OpenLayers
   ●   Reprojection of data
   ●   WMS in different projection




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“           18
Known Projections
   ●   Projections in OpenLayers
       ●   4326 and 900913
  new OpenLayers.Map( {
      projection : 'EPSG:31467',
      maxResolution: 30000,
      units: 'm',
      maxExtent: new OpenLayers.Bounds(
          3146150, 5223600, 4031150, 6108600
      )
  } );

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   19
OpenLayers with another SRS




                                                                          [germany-wms]
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   20
Reprojection of vectordata
    ●   Included:             4326              <=>           900913
    ●   Otherwise: Proj4 JS                          http://proj4js.org/
<script type=“text/javascript“ src=“path/to/proj4.js“></script>
<script type=“text/javascript“>
    Proj4js.defs["EPSG:31467"] = "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 …";
</script>
<script type=“text/javascript“>
    var geom = new OpenLayers.Geometry.Point(6.97, 50.95);
    geom.transform(
        new OpenLayers.Projection('EPSG:4326'),
        new OpenLayers.Projection('EPSG:31467')
    );
</script>



 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“        21
Reprojection of vectordata




                                                                          [germany-wms]
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   22
Projections
   ●   My SRS URL-parameter is being ignored!
   ●   That's because
       ●   The baselayer determines the projection that will end
           up in the URL
       ●   or
       ●   The OpenLayers.Map-instance has a projection.




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“           23
API
   ●   Too complex for simple things
       ●   Popup, marker, tooltips, annotations
       ●   Compare to Leaflet (http://leaflet.cloudmade.com/)
       ●   http://crschmidt.net/blog/archives/497/demo-leafletopenlayers-translator/

   ●   Silent failures
   ●   Debug mode
   ●   Swapping of base library


2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“                24
Documentation
   ●   … or lack of documentation
   ●   … or in too many different places
       ●   e.g. Vector styling
   ●   Outdated examples
   ●   No inherited properties in API
   ●   Events / callback / arguments



2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   25
Performance
   ●   Vectors (see before)
   ●   Single file build / compressing
       ●   build/build.py and build/README.txt
       ●   http://openlayerer.appspot.com/
   ●   WMS tiling
   ●   Web Best practices
       (gzip, cssmin,
       header etc)

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“      26
What wasn't a problem?
   ●   There were (surprisingly) very few questions
       related to
       ●   Same Origin Policy and proxy.cgi
       ●   Mobile
       ●   Browser X does Y instead of Z




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“   27
Homework
   ●   For OpenLayers
       ●   Better documentation (=> Codesprint Fr?)
       ●   Better API
   ●   For you
       ●   Tell us what is annoying
       ●   Send patches / edit on github
       ●   Get involved!



2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“         28
Thanks


                        Thank you
                    for your attention.

                              Questions?

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“       29
Sources
   ●   [userlist]: http://lists.osgeo.org/pipermail/openlayers-users/
   ●   [stackoverflow]: http://stackoverflow.com/questions/tagged/openlayers
   ●   [twitter]: http://twitter.com/#!/selectoid/status/99382702867877888
   ●   [ie-logo]: http://paulirish.com/2010/high-res-browser-icons/
   ●   [germany-wms]:
       http://wms1.ccgis.de/cgi-bin/mapserv?MAP=/data/umn/germany/germany.map&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1

   ●   [pitfall]: http://www.flickr.com/photos/montage_man/394251850/ CC-BY 2.0 by joefoodie




2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“                                                           30
Imprint
   ●   Author:
       Marc Jansen                                      @selectoid
       terrestris GmbH & Co. KG                         http://terrestris.de/
       Irmintrudisstr. 17                               jansen@terrestris.de
       53111 Bonn, Germany
       Tel. +49 228 – 962 899 53                        Fax: +49 228 – 962 899 57


   ●   Licence of the slides:
       Creative Commons (by-sa) 2.0-Licence
       http://creativecommons.org/licenses/by-sa/2.0/


2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“              31

Mais conteúdo relacionado

Semelhante a Common pitfalls for users of OpenLayers

Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011François Scharffe
 
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011Datalift
 
Introduction to Open Source
Introduction to Open SourceIntroduction to Open Source
Introduction to Open SourceGluster.org
 
JOnAS Addons and the deployment for PaaS and SaaS applications
JOnAS Addons and the deployment for PaaS and SaaS applicationsJOnAS Addons and the deployment for PaaS and SaaS applications
JOnAS Addons and the deployment for PaaS and SaaS applicationsFlorent BENOIT
 
JOnAS Addons, OW2con 2011, Nov 24-25, Paris
JOnAS Addons, OW2con 2011, Nov 24-25, ParisJOnAS Addons, OW2con 2011, Nov 24-25, Paris
JOnAS Addons, OW2con 2011, Nov 24-25, ParisOW2
 
Maps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinneMaps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinneOlli Rinne
 
Maps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinneMaps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinneApps4Finland
 
Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Tracy Kent
 
ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.Arne Bröring
 
OKFest: FabLab Project Documentation
OKFest: FabLab Project DocumentationOKFest: FabLab Project Documentation
OKFest: FabLab Project DocumentationAnu Maa
 
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...JISC GECO
 
Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)Masaki Nakagawa
 
Applying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real worldApplying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real worldFederico Capoano
 
Efficient Data Assimilation with OpenDA
Efficient Data Assimilation with OpenDAEfficient Data Assimilation with OpenDA
Efficient Data Assimilation with OpenDAnilsvanvelzen
 
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx USEclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx USmelbats
 
OER World Map Project
OER World Map Project OER World Map Project
OER World Map Project Robert Farrow
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectGreat Wide Open
 
GrenchMark at CCGrid, May 2006.
GrenchMark at CCGrid, May 2006.GrenchMark at CCGrid, May 2006.
GrenchMark at CCGrid, May 2006.Alexandru Iosup
 

Semelhante a Common pitfalls for users of OpenLayers (20)

Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
 
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
Datalift a-catalyser-for-the-web-of-data-fosdem-05-02-2011
 
Introduction to Open Source
Introduction to Open SourceIntroduction to Open Source
Introduction to Open Source
 
JOnAS Addons and the deployment for PaaS and SaaS applications
JOnAS Addons and the deployment for PaaS and SaaS applicationsJOnAS Addons and the deployment for PaaS and SaaS applications
JOnAS Addons and the deployment for PaaS and SaaS applications
 
JOnAS Addons, OW2con 2011, Nov 24-25, Paris
JOnAS Addons, OW2con 2011, Nov 24-25, ParisJOnAS Addons, OW2con 2011, Nov 24-25, Paris
JOnAS Addons, OW2con 2011, Nov 24-25, Paris
 
Maps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinneMaps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinne
 
Maps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinneMaps4 finland 28.8.2012, olli rinne
Maps4 finland 28.8.2012, olli rinne
 
Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source
 
ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.ThinSWEClient - Visualising time series data with open source components.
ThinSWEClient - Visualising time series data with open source components.
 
OKFest: FabLab Project Documentation
OKFest: FabLab Project DocumentationOKFest: FabLab Project Documentation
OKFest: FabLab Project Documentation
 
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
Map Styling Tools and Interactive maps on the web with OpenLayers - Addy Pope...
 
Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)Perl Testing Consideration (seen from other languages)
Perl Testing Consideration (seen from other languages)
 
Applying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real worldApplying the Unix Philosophy to Django projects: a report from the real world
Applying the Unix Philosophy to Django projects: a report from the real world
 
Efficient Data Assimilation with OpenDA
Efficient Data Assimilation with OpenDAEfficient Data Assimilation with OpenDA
Efficient Data Assimilation with OpenDA
 
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx USEclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
 
Openerp Rise Web
Openerp Rise WebOpenerp Rise Web
Openerp Rise Web
 
OER World Map Project
OER World Map Project OER World Map Project
OER World Map Project
 
Software Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight ProjectSoftware Defined Networking: The OpenDaylight Project
Software Defined Networking: The OpenDaylight Project
 
GrenchMark at CCGrid, May 2006.
GrenchMark at CCGrid, May 2006.GrenchMark at CCGrid, May 2006.
GrenchMark at CCGrid, May 2006.
 
20110728 datalift-rpi-troy
20110728 datalift-rpi-troy20110728 datalift-rpi-troy
20110728 datalift-rpi-troy
 

Mais de FOSS4G 2011

Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...FOSS4G 2011
 
OPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial StandardsOPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial StandardsFOSS4G 2011
 
Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...FOSS4G 2011
 
Clip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data DistributionClip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data DistributionFOSS4G 2011
 
Advanced Cartography for the Web
Advanced Cartography for the WebAdvanced Cartography for the Web
Advanced Cartography for the WebFOSS4G 2011
 
Shortest Path Search with pgRouting
Shortest Path Search with pgRoutingShortest Path Search with pgRouting
Shortest Path Search with pgRoutingFOSS4G 2011
 

Mais de FOSS4G 2011 (8)

Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...Adapting remote sensing research for environmental monitoring: Citizen mappin...
Adapting remote sensing research for environmental monitoring: Citizen mappin...
 
OPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial StandardsOPen Source Web Test Engine for Geospatial Standards
OPen Source Web Test Engine for Geospatial Standards
 
OpenAerialMap
OpenAerialMapOpenAerialMap
OpenAerialMap
 
Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...Processing chains with OGC Web Processing Services to process satellite data ...
Processing chains with OGC Web Processing Services to process satellite data ...
 
Clip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data DistributionClip and Ship: MapServer for Data Distribution
Clip and Ship: MapServer for Data Distribution
 
The FOSS4G Map
The FOSS4G MapThe FOSS4G Map
The FOSS4G Map
 
Advanced Cartography for the Web
Advanced Cartography for the WebAdvanced Cartography for the Web
Advanced Cartography for the Web
 
Shortest Path Search with pgRouting
Shortest Path Search with pgRoutingShortest Path Search with pgRouting
Shortest Path Search with pgRouting
 

Último

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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (20)

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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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...
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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...
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Common pitfalls for users of OpenLayers

  • 1. FOSS4G 2011, Denver, CO Common pitfalls for users of OpenLayers Or: “Why are my features at the equator when they shouldn't“ Marc Jansen, terrestris GmbH & Co. KG 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 1
  • 2. Table of contents ● Introduction ● Methodology ● Common pitfalls ● Homework or how to improve OpenLayers [pitfall] 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 2
  • 3. Introduction – about me ● Marc Jansen ● Developer and project manager @ terrestris ● Frontend and OpenSource-GIS-Stack ● Co-Author „OpenLayers — Webentwicklung mit dynami- schen Karten und Geodaten“ (ISBN 978-3-937514-92-5) ● Trunk committer OpenLayers 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 3
  • 4. Introduction – about terrestris ● OpenSource WebGIS Technologies ● Softwaredevelopment ● Training & Consulting ● OpenSource advocates ● Geoportals, Geodata, Standards... ● Partner of OpenGeo ● Sponsoring FOSS4G, FOSSGIS ● Associate member of OGC 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 4
  • 5. Introduction – this talk ● This talk will deal with OpenLayers... ● … a quick poll 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 5
  • 6. Raise your hands, please Who knows OpenLayers ? 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 6
  • 7. Raise your hands, please Who has developed using OpenLayers ? 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 7
  • 8. Raise your hands, please Who knows the online API-documentation ? 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 8
  • 9. Raise your hands, please Who thinks the online API-documentation totally rocks ? 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 9
  • 10. Raise your hands, please 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 10
  • 11. Methodology ● This is not a scientific talk ● Sources: ● OpenLayers-User List [userlist] ● Stack Overflow [stackoverflow] ● Twitter [twitter] ● My experience 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 11
  • 12. Vectors ● Many problems circle around vectors in OpenLayers ● Styling ● Performance ● Custom Select-Tools ● Get Features from services ● use cases range from easy to complex 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 12
  • 13. Styling Vectors ● You can set ● style for a feature ● style for a layer ● stylemap for a layer – render intents – attributive '${statusClass}' – rule based ● Complex styling options 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 13
  • 14. Performance of Vectors ● Internet Explorer has big issues rendering many (> ~250) features ● Usual suggestion ● Raster layer for display ● Limit features ● Cluster strategies [ie-logo] ● Drop support for IE (often not an option) 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 14
  • 15. Performance of Vectors 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 15
  • 16. Custom Select-Tools for Vectors ● Select by a box ● { box: true } ● Select by a polygon ● { poly: true } ● (currently not available!) 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 16
  • 17. Getting Features from a service     var kml = new OpenLayers.Layer.Vector("KML", {         strategies: [             new OpenLayers.Strategy.Fixed()         ],         protocol: new OpenLayers.Protocol.HTTP({             url: "kml/sundials.kml",             format: new OpenLayers.Format.KML({                 extractStyles: true,                 extractAttributes: true             })         })     }); 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 17
  • 18. Projections ● Projections in OpenLayers ● Reprojection of data ● WMS in different projection 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 18
  • 19. Known Projections ● Projections in OpenLayers ● 4326 and 900913 new OpenLayers.Map( {     projection : 'EPSG:31467',     maxResolution: 30000,     units: 'm',     maxExtent: new OpenLayers.Bounds(         3146150, 5223600, 4031150, 6108600     ) } ); 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 19
  • 20. OpenLayers with another SRS [germany-wms] 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 20
  • 21. Reprojection of vectordata ● Included: 4326 <=> 900913 ● Otherwise: Proj4 JS http://proj4js.org/ <script type=“text/javascript“ src=“path/to/proj4.js“></script> <script type=“text/javascript“>     Proj4js.defs["EPSG:31467"] = "+proj=tmerc +lat_0=0 +lon_0=9 +k=1 …"; </script> <script type=“text/javascript“>     var geom = new OpenLayers.Geometry.Point(6.97, 50.95);     geom.transform(         new OpenLayers.Projection('EPSG:4326'),         new OpenLayers.Projection('EPSG:31467')     ); </script> 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 21
  • 22. Reprojection of vectordata [germany-wms] 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 22
  • 23. Projections ● My SRS URL-parameter is being ignored! ● That's because ● The baselayer determines the projection that will end up in the URL ● or ● The OpenLayers.Map-instance has a projection. 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 23
  • 24. API ● Too complex for simple things ● Popup, marker, tooltips, annotations ● Compare to Leaflet (http://leaflet.cloudmade.com/) ● http://crschmidt.net/blog/archives/497/demo-leafletopenlayers-translator/ ● Silent failures ● Debug mode ● Swapping of base library 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 24
  • 25. Documentation ● … or lack of documentation ● … or in too many different places ● e.g. Vector styling ● Outdated examples ● No inherited properties in API ● Events / callback / arguments 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 25
  • 26. Performance ● Vectors (see before) ● Single file build / compressing ● build/build.py and build/README.txt ● http://openlayerer.appspot.com/ ● WMS tiling ● Web Best practices (gzip, cssmin, header etc) 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 26
  • 27. What wasn't a problem? ● There were (surprisingly) very few questions related to ● Same Origin Policy and proxy.cgi ● Mobile ● Browser X does Y instead of Z 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 27
  • 28. Homework ● For OpenLayers ● Better documentation (=> Codesprint Fr?) ● Better API ● For you ● Tell us what is annoying ● Send patches / edit on github ● Get involved! 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 28
  • 29. Thanks Thank you for your attention. Questions? 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 29
  • 30. Sources ● [userlist]: http://lists.osgeo.org/pipermail/openlayers-users/ ● [stackoverflow]: http://stackoverflow.com/questions/tagged/openlayers ● [twitter]: http://twitter.com/#!/selectoid/status/99382702867877888 ● [ie-logo]: http://paulirish.com/2010/high-res-browser-icons/ ● [germany-wms]: http://wms1.ccgis.de/cgi-bin/mapserv?MAP=/data/umn/germany/germany.map&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 ● [pitfall]: http://www.flickr.com/photos/montage_man/394251850/ CC-BY 2.0 by joefoodie 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 30
  • 31. Imprint ● Author: Marc Jansen @selectoid terrestris GmbH & Co. KG http://terrestris.de/ Irmintrudisstr. 17 jansen@terrestris.de 53111 Bonn, Germany Tel. +49 228 – 962 899 53 Fax: +49 228 – 962 899 57 ● Licence of the slides: Creative Commons (by-sa) 2.0-Licence http://creativecommons.org/licenses/by-sa/2.0/ 2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 31