Top Banner
2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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
31

Common pitfalls for users of OpenLayers

Nov 18, 2014

Download

Technology

FOSS4G 2011

Common pitfalls for users of OpenLayers by Marc Jansen of Terestris
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 2: Common pitfalls for users of OpenLayers

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

Table of contents

● Introduction● Methodology● Common pitfalls● Homework

or how to improveOpenLayers

[pitfall]

Page 3: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 4: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 5: Common pitfalls for users of OpenLayers

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

Introduction – this talk

● This talk will deal with OpenLayers...

● … a quick poll

Page 6: Common pitfalls for users of OpenLayers

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

Raise your hands, please

Who knows OpenLayers

?

Page 7: Common pitfalls for users of OpenLayers

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

Raise your hands, please

Who has developedusing OpenLayers

?

Page 8: Common pitfalls for users of OpenLayers

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

Raise your hands, please

Who knows theonline API-documentation

?

Page 9: Common pitfalls for users of OpenLayers

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

Raise your hands, please

Who thinks theonline API-documentation

totally rocks

?

Page 10: Common pitfalls for users of OpenLayers

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

Raise your hands, please

Page 11: Common pitfalls for users of OpenLayers

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

Methodology

● This is not a scientific talk● Sources:

● OpenLayers-User List [userlist]

● Stack Overflow [stackoverflow]

● Twitter [twitter]

● My experience

Page 12: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 13: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 14: Common pitfalls for users of OpenLayers

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

Performance of Vectors

● Internet Explorerhas big issues renderingmany (> 250) features~

● Usual suggestion● Raster layer for display● Limit features● Cluster strategies● Drop support for IE

(often not an option)

[ie-logo]

Page 15: Common pitfalls for users of OpenLayers

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

Performance of Vectors

Page 16: Common pitfalls for users of OpenLayers

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

Custom Select-Tools for Vectors

● Select by a box● { box: true }

● Select by a polygon● { poly: true }● (currently not available!)

Page 17: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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            })        })    });

Page 18: Common pitfalls for users of OpenLayers

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

Projections

● Projections in OpenLayers● Reprojection of data● WMS in different projection

Page 19: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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    )} );

Page 20: Common pitfalls for users of OpenLayers

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

OpenLayers with another SRS

[ger

man

y-w

ms]

Page 21: Common pitfalls for users of OpenLayers

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

● Included: 4326 <=> 900913● Otherwise: Proj4 JS http://proj4js.org/

Reprojection of vectordata

<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>

Page 22: Common pitfalls for users of OpenLayers

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

Reprojection of vectordata

[ger

man

y-w

ms]

Page 23: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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.

Page 24: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 25: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 26: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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)

Page 27: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 28: Common pitfalls for users of OpenLayers

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

Homework

● For OpenLayers● Better documentation (=> Codesprint Fr?)● Better API

● For you● Tell us what is annoying● Send patches / edit on github● Get involved!

Page 29: Common pitfalls for users of OpenLayers

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

Thanks

Thank youfor your attention.

Questions?

Page 30: Common pitfalls for users of OpenLayers

2011-09-14 | FOSS4G 2011 | M. Jansen: „Common OpenLayers pitfalls“ 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

Page 31: Common pitfalls for users of OpenLayers

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

Imprint

● Author:Marc Jansen @selectoidterrestris GmbH & Co. KG http://terrestris.de/Irmintrudisstr. 17 [email protected] Bonn, GermanyTel. +49 228 – 962 899 53 Fax: +49 228 – 962 899 57

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