OpenLayers: Datenintegration in einem Open Source

Download Report

Transcript OpenLayers: Datenintegration in einem Open Source

OpenLayers: Data Integration
OpenLayers: Data Integration in an
Open Source Map Browser
1
Prof. Dr. Franz-Josef Behr
Hochschule für Technik, Stuttgart
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Outline
• Introduction
•
OpenLayers
– Features, history, components
– Code example
– Software development features
– Types and integration of data layers
2
•
Conclusion
– Examples
– Remarks
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Awareness and Ignorance
3
http://today.reuters.com/news/articlenews.aspx?type=technologyNews&storyid=2007-0905T170415Z_01_N05213136_RTRUKOC_0_US-FOSSETT-TECH.xml
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
History
4
2004
2005
Prof. Dr.-Ing. Franz-Josef Behr
2006
2007
OpenLayers: Data Integration
Introduction: The Web 2.0 idea
• an emerging change in paradigm in what the World
Wide Web is and how it works -> decentralisation.
• implies conceptual, technical and social aspects.
Web as
platform
Participation
Content
syndication
Web
services
…..……
……
AJAX
…
Conceptual
& social
5
Web 2.0
XML
RSS
Prof. Dr.-Ing. Franz-Josef Behr
JavaScript
Technical
OpenLayers: Data Integration
GeoWeb – the Geo part of Web 2.0
6
•
… merging of geographical (location-based) information with the
abstract information of traditional web sites.
•
Huge amount of data available
•
High interest on tools like Google Map API: ~90 mails / day
•
Geotagging:
– “On the Flickr photo-sharing service … users have “geotagged”
more than 25 million pictures, providing location data that
allows them to be viewed on a map or through 3-D visualization
software like Google Earth.“1
– platial.com: Access to > 30.000.000 locations
1http://www.nytimes.com/2007/07/27/technology/27maps.html?ex=1343275200&en=c0ca3a8864
4ae4a9&ei=5124&partner=permalink&exprod=permalink
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
[Free] Map Browsers
7
•
•
•
Google Maps, http://www.google.com/apis/maps/
Yahoo! Maps API, http://developer.yahoo.com/maps/
Microsoft Live Local, http://local.live.com/
•
•
•
•
•
•
MapGuide Open Source, https://mapguide.osgeo.org/
OpenLayer, http://www.openlayers.org/
FlashEarth, http://www.flashearth.com/
WorldKit, http://worldkit.org/
ka-Map, http://ka-map.maptools.org/
deegree iGeoPortal, http://www.lat-lon.de
– WMS, WFS, WCS, Catalogue Service, Gazetteer Service
MappingWidgets, http://mappingwidgets.sourceforge.net/
– WMS, zoom in, zoom out, pan, info, overview
Chameleon, http://chameleon.maptools.org/
p.mapper, http://www.pmapper.net/
– based on UMN MapServer/PHP/MapScript, zoom/pan, query, etc.
WMS Mapper, http://wms-map.sourceforge.net/: WMS, zoom
•
•
•
•
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Outline
• Introduction
•
OpenLayers
– Features, history, components
– Code example
– software development process
– Types and integration of data layers
8
•
Conclusion
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
What is OpenLayers?
9
•
an API for building web mapping applications,
http://www.openlayers.org
•
pure client-side object-oriented JavaScript, using components from
Prototype.js and the Rico library
•
AJAX (Asynchronous JavaScript and XML)
•
supports open and proprietary data standards / sources
•
efficient tiling
•
BSD licensed (standard licence for open source software, see
http://svn.openlayers.org/trunk/openlayers/release-license.txt)
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
History of the Project
•
Started after Where 2.0 conference in 2005
•
Motivated also by MetaCarta's business needs
•
released before Where 2.0 conference in 2006
•
already used by > 10,000 people
•
is going to become a project of the Open Source Geospatial
Foundation.
10
… aims to become "the Apache of web mapping APIs"
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Components of OpenLayers Maps
11
Prof. Dr.-Ing. Franz-Josef Behr
just a prototype!
OpenLayers: Data Integration
Simple integration into (X)HTML
Including API
(remote or
local)
Creating map
object
12
Adding layer
Placeholder
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
OpenLayers development: Versioning and tracking
13
•
•
Code and content: in the OpenLayers Subversion
(SVN) repository, http://svn.openlayers.org/
enabling worldwide development
•
Project management using trac
– tracking system for bugs, feature requests,
version management etc (“tickets“)
– interface to Subversion
– allows wiki-like markup in descriptions and
messages, creating links and seamless
references between tickets, files, and wiki
pages.
– timeline gives historic view of the project.
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
OpenLayers‘s Subversion System
14
•
a version control system
(successor of CVS)
•
trunk: current version of
project
•
branches: copies of original
source
•
tags: copies without
modifications
•
sandbox: „playground“ for
single developers
Prof. Dr.-Ing. Franz-Josef Behr
http://en.wikipedia.org/wiki/Subversion_%28software%29
OpenLayers: Data Integration
OpenLayers development: Tracking system
15
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
OpenLayers development: Groups involved
•
Users
•
Mailing lists participants
•
Registered developers (contributors)
•
Project Steering Committee (7 members,
http://trac.openlayers.org/wiki/SteeringCommitteeMembers)
•
Committee Chair
– facilitates discussion of proposals, responsible for memberships
of the Project Steering Committee.
– adjudication in cases of disputes about voting.
16
•
Democratic process: Addition and removal of members from the
committee, as well as selection of a Chair should be handled as a
proposal to the committee.
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
OpenLayers development: Process
17
Clear and sound development rules:
1. Proposals  OpenLayers dev mailing list  discussion and voting, for at
least two business days.
2. Voting:
"+1“: indicating support for the proposal and a willingness to support
implementation.
"-1“: to veto a proposal, must provide clear reasoning and alternate
approaches to resolving the problem
“-0”: indicates mild disagreement, but no effect; “0”: no opinion, “+0”:
mild support, but no effect.
3. Project Steering Committee's votes will be counted.
4. Acceptance: +2 (including the proposer), no vetos (-1).
5. Veto  can be resubmitted for an override vote.
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
OpenLayers development: Testing Methodology
•
Test.AnotherWayFramework
•
more than 2100
automated tests
(http://openlayers.org/blog/20
07/08/23/automated-testing/)
18
http://openlayers.org/dev/tests/run-tests.html
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
OpenLayers development: Classes, inheritance
19
Prof. Dr.-Ing. Franz-Josef Behr
Source: Emanuel Schütze, http://www.smartmapbrowsing.org/html/index_en.html [2007-0919]
OpenLayers: Data Integration
OpenLayers development: API documentation
20
Source: http://dev.openlayers.org/apidocs/files/OpenLayers-js.html [2007-09-07]
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Architecture
• Multi-tier
• REST-based (Representational state transfer)
http
21
Internet
http
http
(REST)
Webserver (Proxy)
SQL
Geo-DBMS
Local files
OpenLayers
Client
Prof. Dr.-Ing. Franz-Josef Behr
http
OpenLayers: Data Integration
Layers Classes
• GeoRSS
• CSV
• GML
22
• OGC WMS
• OGC WFS
• KML
• WKT
Vector
Layers,
points,
lines,
polygons
rendered
with SVG
/ VML
• Google Maps
• MSN Live Local
• Yahoo! Maps
• Multimap
• ka-Map
• WorldWind
Prof. Dr.-Ing. Franz-Josef Behr
Raster
Layers,
tiled
OpenLayers: Data Integration
GeoRSS
23
•
•
W3C 2006:
“a simple model for tagging external content with
geographic feature properties which are
consistent with the general feature model and
syntax of OGC GML.”
Source: cadenhead.org
supported by Yahoo! Maps, Google Maps, Live
Local, WorldKit, MapInfo, FME, Drupal, …
<item xmlns="http://mywebserver.com/rss2">
<title>…</title>
<description>…</description>
<georss:point xmlns:georss="http://www.georss.org/georss">
45.3515625 75.234375
</georss:point>
</item>
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
GeoRSS in OpenLayers
• Presently, two XML serializations are supported: GeoRSS
Simple, W3C GeoRSS
var georsslayer = new OpenLayers.Layer.GeoRSS(“georss.xml”, value);
map.addLayer(georsslayer);
24
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
GeoJSON
25
{
• JSON = JavaScript
Object Notation
• lightweight datainterchange format
• efficient use in
JavaScript programs
• also supported by
Google Maps
}
Prof. Dr.-Ing. Franz-Josef Behr
"type": "Feature",
"id": "OpenLayers.Feature.Vector_122",
"properties": {
},
"geometry": {
"type": "Point",
"coordinates": [
115.3125,
24.9609375
]
},
"crs": {
"type": "EPSG",
"properties": {
"code": 4326
}
}
OpenLayers: Data Integration
OGC‘s Geography Markup Language GML
•
only version 2 support
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs">
<gml:featureMember xmlns:gml="http://www.opengis.net/gml">
<feature:features xmlns:feature=http://mapserver.gis.umn.edu/mapserver
fid="OpenLayers.Feature.Vector_156">
<feature:geometry>
<gml:Point>
<gml:coordinates decimal="." cs=", " ts=“ ">75.2,45.3
</gml:coordinates>
</gml:Point>
</feature:geometry>
</feature:features>
</gml:featureMember>
</wfs:FeatureCollection>
26
•
Integration of a GML Layer
map.addLayer(new OpenLayers.Layer.GML("GML", "gml/polygon.xml"));
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Keyhole Markup Language - KML
27
•
„I added support for KML point display in about 20 minutes,
including the time to find data and write a demo HTML page loading
some example data. Adding LineString support was another 15
minutes.“
http://crschmidt.net/blog/archives/201/openlayers-vector-support/
•
polygons not yet supported
•
Integration of a KML Layer
map.addLayer(
new OpenLayers.Layer.GML(
"KML",
"kml/mc-search.kml",
{format: OpenLayers.Format.KML}
)
);
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
WMS
28
• A WMS layer needs layername, URL, and parameters
var map = new OpenLayers.Map('map');
var wmslayer = new OpenLayers.Layer.WMS(
"WMS Stuttgart",
"http://suasdemo.easywms.com/WMS/getmapcap.php?",
{
layers:'gruenflaechen,oeffentl_gebaeude,private_gebaeude',
VERSION: "1.1.1",
units: 'meters‚
transparent: 'false',
format: 'image/png'
maxExtent: 'new OpenLayers.Bounds(minx,miny,maxx,maxy)',
maxResolution': 'auto‚
}
);
map.addLayer(wmslayer);
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
WMS
29
1
// Register click event
map.events.register('click', map, function (e) {
// initialize the displaying text
• GetCapabilities
$('nodeList').innerHTML = "Loading... ";
2
//define the parameters for getfeatureInfo
supported by
var url = wmslayer.getFullRequestString({
extension1
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
• GetMap and
BBOX: wms.map.getExtent().toBBOX(),
X: e.xy.x, Y: e.xy.y,
GetFeatureInfo
INFO_FORMAT: 'text/html',
supported
QUERY_LAYERS: wms.params.LAYERS,
REDIUS:2,
WIDTH: wmslayer.map.size.w,
HEIGHT: wmslayer.map.size.h});
• WMS-T support
//get featureInfo
3
OpenLayers.loadURL(url, '', this, setHTML);
Event.stop(e);
});
//display the result
function setHTML(response) {
4
$('nodeList').innerHTML = response.responseText;
}
1see http://trac.openlayers.org/wiki/WMSManager,
Prof. Dr.-Ing. Franz-Josef Behr
http://www.ominiverdi.org/openlayers/sandbox/openlayers/examples/wms_manager.html
OpenLayers: Data Integration
WFS support
• WFS
• WFS-Transactional
function init(){
OpenLayers.ProxyHost="/proxy/?url=";
map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
map.addLayer(layer);
30
layer = new OpenLayers.Layer.WFS( "Owl Survey",
"http://www.bsc-eoc.org/cgi-bin/bsc_ows.asp?",
{typename: "OWLS", maxfeatures: 10},
{ featureClass: OpenLayers.Feature.WFS});
map.addLayer(layer);
}
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Google Maps in OpenLayers
31
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
var googleLayer = new OpenLayers.Layer.Google( "Google Satellite" ,
{type: G_SATELLITE_MAP, 'maxZoomLevel':18} );
32
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
var satellite = new OpenLayers.Layer.Google( "Google Maps" ,
{type: G_NORMAL_MAP, 'maxZoomLevel':18} );
33
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
MSN Virtual Earth in OpenLayers
34
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Additionally, OpenLayers supports...
• Yahoo! Maps
• MultiMap
35
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Outline
• Introduction
•
OpenLayers
– Features, history, components
– Code example
– Software development features
– Types and integration of data layers
36
•
Conclusion
– Examples
– Remarks
Prof. Dr.-Ing. Franz-Josef Behr
OpenLayers: Data Integration
Samples: Integration of SRTM data
37
Source:
http://dev.openstreetmap.org/~spaetz/?lat=6217998.0293&lon=996891.50684&zoom=8&layers=TTB
Prof.
Dr.-Ing.
Franz-Josef Behr
[2007-09-05]
OpenLayers: Data Integration
Sample: OpenStreetMap
•
aims to be a free
editable map of the
whole world.
•
http://www.openstree
tmap.org/
38
Prof. Dr.-Ing. Franz-Josef Behr
Source: http://www.openstreetmap.org/ [2007-09-10]
OpenLayers: Data Integration
Conclusion
39
• GeoWeb merges locational and abstract information.
• Driven by users.
• Several emerging geo-standards developed by general
IT stakeholders (GeoRSS, KML).
• OpenLayers is a promising Open Source web mapping
client API.
• Modern software development tools and processes
ensure quality and progress of the work.
• OpenLayers is capable to integrate many data resources
and formats.
• Powerful, easy to understand and to use.
Prof. Dr.-Ing. Franz-Josef Behr