OpenLayers: Past, Present and Future
Christopher Schmidt
MetaCarta
What is OpenLayers?
JavaScript Web Mapping Library
Creates API for use in JavaScript applications
Open Source: BSD-ish License
Started in 2006
Similar to Google Maps
Project History: Use Case
MetaCarta creates geospatial search technology
Search through documents, see results on a map
Designed for organizations with large document repositories
Search engine works using map
and
keyword search as input
Project History: Use Case
MetaCarta users want to see search results on map
Want combinations of different mapping data
Needed to support different data sources, same results
Designed with overlays in mind
Support for Many Data Sources
Overlay data on any set of base data
Allows for easy use of commercial, proprietary or open data
Supports use of other APIs
Standardized functionality/look and feel
Project Pre-History
Started by MetaCarta
Following Google Maps API
MetaCarta-only development for 12 months
API not well-designed, no community
Several major rewrites -- none very good
Project History
Final Rewrite in May 2006
Written with community support early on
First contributions from community even before first release
Obvious Success: Quickly adopated
This is what is known as OpenLayers today
History: Timeline
First release May 2006
Refactor, 2.0 in Aug 2006
Releases every 3-4 months since
Current version, 2.7, released Sept 2008
Interesting Milestones
Used by MapBuilder as tile-drawing-library
Picked up by MapGuide/MapServer 'Fusion'
Used by Ordnance Survey, IGN France
Half dozen major supporting organizations
(OpenGeo, Camptocamp, MetaCarta, DM Solutions, Lisasoft, etc.)
Present
OSGeo Project
Dozens of contributors
Active PSC
Used by hundreds (thousands?) of websites
Present
Used by several large mapping agencies
More than 8000 commits in repository
Active ticket tracker
More than 1000 mailing list subscribers
Data Sources
Raster, Standards Based: WMS, TMS, WorldWind
Raster, Proprietary: Google, Yahoo, Microsoft, MultiMap
Raster, Other: MapServer, KaMap, TileCache, Image, MapGuide
Vector: Markers, SVG/VML/Canvas based Vectors
Vector Formats: GML, GeoRSS, GPX, OSM, GeoJSON, KML, WKT
Features: Controls
User interface elements that interact with the map
Panning, Zooming, etc.
Drawing tools, vector modification tools
Measurement
Scale display
Easy to build your own controls
Features: Vector Behavior
Support for loading vector data based on map criteria
Can load data once, when bounds change, etc.
Interesting functionality like clustering, paging
With a protocol, can save to server
Reprojection Support
For vector data, can change projection of data
Useful for working with KML, GeoRSS, OSM
Can also be used when talking to WFS Server
Often used with Google Maps
Built in projections, or using proj4js
Future: 2.x
Continued improvements to vector behavior/protocol support
Improved documentation, tutorials, etc.
Continued bug fixes, speed improvements, memory improvements
2.8 release in ~2-3 months
Future: 3.0
Next "major" release -- previous in Aug 2006
Improvements based on two years of development
"Backwards compatibility" not required
Many lessons learned over 2 years!
Future: 3.0 Possibilities
Change confusing 'LonLat' for projected maps
Support automatic reprojection of input/output points
Change vector rendering to accomodate for SVG/VML difficulties
Drop support for 'deprecated' functionality
Limit/Remove UI Components as 'core': split into UI libs
Future: GeoExt
Connector for using OpenLayers with Ext Library
Take advantage of Ext widgets, and create OL specific widgets
Being worked on by OpenGeo/Camptocamp
Discussed at FOSS4G 2008
Gallery
EveryBlock
Ride the City
Houston Crime Maps (GeoDjango)
OpenStreetMap/OpenCycleMap
Dutch Directorate for Public Works and Water Management
California Fire Hazard Severity Zones
Other Interesting Projects
Camptocamp: MapFish
DM Solutions: Fusion
OpenGeo: GeoExt
MetaCarta: Javascript SDK
Ordnance Survey: Open Space
IGN: Geoportail
Next Steps for Project
Better Documentation/Tutorials
Improved Beginner Tools
Target further integration into other tools
Make switching to OpenLayers easier
International
Improved international community interactions
Building/Improving localization
Improving documentation in foreign language
Local mailing list/user community? For different langauges
For more...
Check out http://openlayers.org/
Join Users Mailing List
http://openlayers.org/mailman/listinfo/users
Questions?
(Thanks to Conference Organizers, Orkney, MetaCarta, OSGeo.jp.)