Upload
ruthlang
View
2.102
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Mappetizer "Tourist Info", "City Info", and "Travel Diary" are SVG based web mapping applications, which directly can display GPS data (GPX files).
Citation preview
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Mappetizer Web Mapping Applications
Mappetizer Tourist- and City-Info and Mappetizer Travel Diary
Ruth LANG , Armin MÜLLER
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Introduction
Mappetizer “Tourist Info”, “City Info”, and “Travel Diary” are SVG based web mapping applications, which directly can display GPS data (GPX files).
As Mappetizer “Tourist Info” and “City Info” are for public use on the internet (whether municipality, county or city), “Travel Diary” can be seen as an application for everybody's use. But the philosophy and technique behind all the applications are the same.
View as an example:
http://www.uismedia.de/mappetizer/traveldiary/TravelDiary_Ruth/index.html
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Main Goals and Ideas
• Quasi-dynamic import/display of GPS data (GPX files).
• Displaying of any information based on geographic data, like points (= waypoints, e.g. hotels, schools, places of interest), lines (= tracks, e.g. bicycle and hiking tours, online guided city tours) and polygons.
• Based on open standards (SVG, HTML, XML).The map, overview and legend of the applications are
embedded SVG elements within the HTML page.
• Not depending on any specific web server technologies or database.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Main Goals and Ideas
• Extended scope on descriptive information about the tracks and waypoints, including text, pictures, links, addresses, ranking and rating.
• Support of multilingualism.
• Full control on layout and design.
• Extensive map features, like navigation, measure distances, overview map, location search.
• Expandability and flexibility.
• Not depending on Google or Bing Maps and their terms of use.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Contents
• Dojo Toolkit
• OpenStreetMap
• Importing and displaying the GPX files
• Organizing the application
• GeoNames Webservices
• OSM Nominatim
• Next Steps
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Dojo Toolkit
The application uses the open source modular JavaScript library Dojo Toolkit and the Dojo widgets system.
Dojo Toolkit is divided into the following packages:
1.Dojo
2.Dijit
3.DojoX
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Dojo
Dojo Base is the functionality you get by just including dojo.js in the page. It provides utilities which we use in our application, like:
•Array Utilities, String Utilities
•DOM manipulation and Events
•Ajax / IO Tools, JSON Tools
•Objects / OO Tools
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Dijit
Dijit is Dojo’s UI Library, a widget system layered on top of Dojo. These are prepackaged components of JavaScript code, HTML markup and CSS style declarations that can be used to enrich websites with various interactive features that work across browsers, like
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Dijit
• Widgets (e.g. dijit.Menu and dijit.MenuItem, dijit.Toolbar, dijit.TitlePane)
• Form handling (e.g. buttons like dijit.form.Button, dijit.form.ToggleButton, dijit.form.DropDownButton or other controls like dijit.form.Slider)
• Layout (e.g. dijit.layout.BorderContainer, dijit.layout.ContentPane, dijit.layout.TabContainer)
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Dijit
Dijit comes bundled with different themes (called Claro, Tundra, Soria, and Nihilo). Themes are collections of images (icons and background images) and CSS, and brings a common visual style and color scheme to all the widgets in that page. Dijit can be used in one of two ways: declaratively by using special attributes inside of regular HTML tags, and programmatically through JavaScript.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
TabContainer, ContentPane
A TabContainer is a container that has multiple ContentPanes, but shows only one pane at a time. There are a set of tabs corresponding to each pane, where each tab has the title (label) of the pane, and optionally a close button.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
TabContainer, ContentPane
Declarative example of a TabContainer:
<div dojoType="dijit.layout.TabContainer">
<div dojoType="dijit.layout.ContentPane" title="Legend">
Displaying the legend in this tab
</div>
<div dojoType="dijit.layout.ContentPane" title="Info">
Displaying identify results in this tab
</div>
</div>
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
TitlePane
A TitlePane is a pane that can be opened or collapsed, with a title on top. The visibility of the pane’s contents is toggled by activating an arrow button on the title bar via the mouse or keyboard.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
TitlePane
Programmatic example of a TitlePane:
var tp = new dijit.TitlePane({ title: "I'm a TitlePane", content: "Click arrow to close me!" });
dojo.byId("holder").appendChild(tp.domNode);
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
DojoX
DojoX is an area for development of extensions to the Dojo toolkit. It is a repository for more stable and mature extensions and also acts as an incubator for experimental code, a testbed for additions to the main toolkit. Unlike Dojo and Dijit, DojoX is managed by subprojects, each of which has at least one module, a sponsor and a mission statement.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
OpenStreetMap
The web application uses OpenStreetMap (OSM) as a background layer. OSM data are directly imported via the OSM Mapnik Tile Server, so the user benefits from perpetual up-to-dateness without having to concern about.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
OpenStreetMap
The slippy map application rendered by Mapnik provides 18 zoom levels, whereas the tiles are256 x 256 pixel PNG files.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
OpenStreetMap
For a given lat/lon value ata specific zoom level, the xTile and yTile are calculated:
n = 2 ^ zoom
xTile = ((lon_deg + 180) / 360) * n
yTile = (1 - (log(tan(lat_rad) +sec(lat_rad)) / p)) / 2 * n
sec = 1/cos
The tiles are organized, that each zoom level is a directory, each column is a subdirectory, and each tile in that column is a file, so the filename(URL) format is /zoom/xTile/yTile.png
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
OpenStreetMap
For example with
zoom level = 18lon = 11.7408lat = 48.4057
the appropriate png file is http://tile.openstreetmap.org/18/139621/90681.png
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Importing/Displaying the GPS Data
The XMLHttpRequest object is used for making asynchronous calls to the server to retrieve the GPS data. Dojo Toolkit offers for this the dojo.xhrGet() function.
The retrieved XML objects are then analyzed within the application and overlaid on the OSM layer. They are organized in different groups (<g/>) and displayed as SVG paths (<path/>), circles (<circle/>) or images (<image/>).
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GPX (GPS Exchange Format)
The GPS/XML files take over the GPX (the GPS eXchange) format, which is a light-weight XML data format for the interchange of GPS data between applications and web services on the internet.
GPX is developed by Topografix and has been the de-facto XML standard since the initial GPX 1.0 release in 2002.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GPX 1.1 Schema
The GPX 1.1 Schema Documentation describes GPS data as waypoints <wpt/>, tracks <trk/>, and routes <rte/>.
A waypoint represents a point of interest, or named feature on a map. A track is an ordered list of points describing a path. A route is an ordered list of waypoints representing a series of turn points leading to a destination. Routes are not considered within the application.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GPX 1.1 Schema
For further description the GPX 1.1 Schema offers different tags like name <name/>, comment <cmt/>, description <desc/>, link <link/>, or type <type/>.
The tag <extensions/> is implemented to extend the GPX schema for further needs. We use this tag to store information about rendering options, symbology, images and slideshows, specifications, addresses, rating etc.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GPX 1.1 Schema For Tracks <trk/>
<?xml version="1.0" encoding="UTF-8" standalone="no" ?><gpx>
<trk><name/><cmt/><desc/><link/><extensions><score/><spec/><sym/><img/><transport/> </extensions><trkseg><trkpt lat="48.405993" lon="11.740448"><ele>491.85</ele><time>2009-12-27T09:31:27Z</time></trkpt></trkseg></trk>
</gpx>
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Organizing the Application
While starting the application, an XMLHttpRequest is used to load an XML file, called gpxconfig.xml. This file organizes the legend/topics of the travel diary.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Building up the Legend/Topics
Structure of the gpxconfig.xml file:
<?xml version="1.0" encoding="UTF-8"?> <mappetizer><gpxLayer><name>In and around Freising</name><gpxLayer><gpxfile>freising/walking/office.xml</gpxfile> </gpxLayer><gpxLayer></gpxLayer></gpxLayer></mappetizer>
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Multilingualism
<cmt><en>Until end of 2009 this was our daily walk to the office.</en><de>Dies war bis Ende 2009 unser täglicher Arbeitsweg.</de></cmt>
gpxinterface.xml:
<cmt><de>Bemerkung</de><en>Comment</en><fr>Remarque</fr><it>Commento</it></cmt>
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GeoNames Webservices
To expand the functionalities, the application uses different Geonames WebServices like wikipedia geocoding webservice, weather webservice, and other information at given latitude/longitude (lat/lng) values as well as data about countries.
Dojo Toolkit offers cross-site data access with the function dojo.io.script.get() for JSON objects.
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GeoNames Weather Webservice
GeoNames weather webservice provides weather data in the METAR (METeorological Aviation Report) format, like
"EDDM 201520Z 08005KT 050V120 9999 SCT040 30/14 Q1016 NOSIG"
whereas
•EDDM is the ICAO (International Civil Aviation Organization) airport code for Munich airport
•201520Z indicates the time of the observation. It is the day of the month (the 20th) followed by the time of day (15.20 UTC time zone)
•08005KT wind direction and wind speed
•...
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GeoNames Weather Webservice
http://ws.geonames.org/weatherJSON?north=48.3&south=48.5&east=11.9&west=11.6
returns entries like
{"weatherObservations":[{"clouds":"scattered clouds","weatherCondition":"n/a", "observation":"EDDM 201520Z 08005KT 050V120 9999 SCT040 30/14 Q1016 NOSIG", "windDirection":80,"ICAO":"EDDM","lng":11.8166666666667,"temperature":„30","dewPoint":"14","windSpeed":"05","humidity":53,"stationName":"Munchen","datetime":"2010-07-20 15:20:00", "lat":48.3666666666667,"hectoPascAltimeter":1016}]}
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
GeoNames Weather Webservice
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
UTC Time Zone
As the time of the observation is in UTC time zone, each record of the request needs another request to get the local time for that weather observation:
http://ws.geonames.org/timezoneJSON?lat=48.3666666666667&lng=11.8166666666667
which returns:
{"time":"2010-07-20 16:04","countryName":"Germany","sunset":"2010-07-20 21:05","rawOffset":1,"dstOffset":2,"countryCode":"DE","gmtOffset":1,"lng":11.8166666666667, "sunrise":"2010-07-20 05:32","timezoneId":"Europe/Berlin","lat":48.3666666666667}
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
OSM Nominatim
The application provides address search provided by OpenStreetMap Nominatim. This is a tool to search OSM data by name and address.
http://nominatim.openstreetmap.org/search?q=Vimystra%C3%9Fe,+Freising&format=json&polygon=0&addressdetails=0
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
OSM Nominatim
[{"place_id":13658848,"licence":"Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.","osm_type":"way","osm_id":4682991, "boundingbox":[48.4051322937012,48.4068412780762,11.738881111145,11.7456321716309], "lat":48.4058400212232,"lon":11.7423118715494,"display_name":"Vimystraße, Domberg, Freising, Bayern, 85354,Regierungsbezirk Oberbayern, Freistaat Bayern, Deutschland", "class":"highway","type":"residential"}}]
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Next Step
• Support of geotagged photos
• Extending the analyses tools, e.g. providing altitude profiles
• ...
SVG OPEN, Aug. 30 - 1. Sep. 2010, Paris
Thank you very much for your attention
Armin MÜLLER, Ruth LANG
Further information about Mappetizerhttp://www.mappetizer.de