SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Presenting trains in real-time
 in OpenLayers via GeoRSS



             Janne Kovanen



             Finnish Geodetic Institute
    Department of Geoinformatics and Cartography


            GI Norden June 8–9, 2011, Turku, Finland
GeoRSS
    An geographical syntax in RSS feeds (XML)
    The coordinate reference system is WGS84
         A coordinate conversion to a plane coordinate
          reference system is mostly required
    Notice! In web browsers you typically see the
     interpretation of a RSS feed reader
         view-source:http://188.117.35.14/TrainRSS/
          TrainService.svc/trainInfo?train=P704
    Updating from an app requires a proxy
         Several exists (web )
 Workshop on Open Location Data 2011             Finnish Geodetic Institute   2
                                                     janne.kovanen@fgi.fi
GeoRSS and GeoRSS-Simple
     For Atom 1.0, RSS 2.0 and RSS 1.0
     GML content
         <georss:where>
           <gml:Point>
             <gml:pos>45.256 -71.92</gml:pos>
           </gml:Point>
          </georss:where>
     Too complex? Simpler alternative:
         <georss:point>60.1 54.2</georss:point>
         <georss:line>45.256 -110.45 46.46 -109.48 43.84 -109.86</
          georss:line>
         <georss:polygon>45.256 -110.45 46.46 -109.48 43.84 -109.86
          45.256 -110.45</georss:polygon>
 Workshop on Open Location Data 2011                  Finnish Geodetic Institute   3
                                                          janne.kovanen@fgi.fi
OpenLayers and GeoRSS
    OpenLayers.Layer.GeoRSS
         Extends a layer for markers
         As such OL downloads the feed only ones
         Features are stored as OpenLayers.Feature
         Does not contains methods for handling features!
    OpenLayers.Format.GeoRSS
         Format for reading GeoRSS
         Only reads such as a title, description and geometry
         Features are handled as OpenLayers.Feature.Vector
              OpenLayers.LonLat vs. OpenLayers.Geometry

 Workshop on Open Location Data 2011                   Finnish Geodetic Institute   4
                                                           janne.kovanen@fgi.fi
“Trains on a map” interface
All trains
<rss version="2.0">
 <channel xmlns:georss="http://www.georss.org/georss">
  <title>Train Feed</title>
  <description>All trains feed</description>
  <lastBuildDate>Tue, 20 Sep 2011 15:00:35 +0300</lastBuildDate>
  <category>Train System</category>
  <item>
    <guid isPermaLink="false">H355</guid>
    <category>1</category><title>H 355</title>
    <description>Summary</description>
    <pubDate>Tue, 20 Sep 2011 15:00:35 +0300</pubDate>
    <georss:point>60.6302800000001 26.8929000000001</georss:point>
    <from>KTS</from><to>KV</to>
    <status>1</status><dir>345</dir>
  </item>
  ...
 </channel>
</rss>
http://www.apps4finland.fi/fi/data/junat-kartalla-palvelun-rajapinta/
  Workshop on Open Location Data 2011                        Finnish Geodetic Institute   5
                                                                 janne.kovanen@fgi.fi
Demo 1: Static one time feed
    // Use some proxy. Add the IP address to the proxy file before this
    OpenLayers.ProxyHost = “/cgi-bin/proxy.cgi?url=”;
    // Initialize OpenLayers
    function init() {
       var map = new OpenLayers.Map('map');
       // Create the background map layers etc (the other demo)
       // Create the train layer
       var newTrainLayer = new OpenLayers.Layer.GeoRSS(
          “Train Feed”,
          “http://188.117.35.14/TrainRSS/TrainService.svc/AllTrains”,
          {projection: new OpenLayers.Projection(“EPSG:4326”)});
          map.addLayer(newTrainLayer);
     // Add controls etc.
}




Workshop on Open Location Data 2011                                       Finnish Geodetic Institute   6
                                                                              janne.kovanen@fgi.fi
“Trains on a map” interface
Detailed information on trains
<rss version="2.0”>
 <channel xmlns:georss="http://www.georss.org/georss">
  <title>P 704</title>
  <description>Train information feed for train P 704</description>
  <lastBuildDate>Fri, 16 Sep 2011 13:57:05 +0300</lastBuildDate>
  <category>1</category>
  <georss:point>62.2989900000001 27.1673200000001</georss:point>
  <speed>33</speed>
  <heading>355</heading>
  <startStation>OL</startStation>
  <endStation>KUO</endStation>
  <status>1</status>
  <reasonCode/>
  <lateness>0</lateness>
  …
 </channel>
</rss>



  Workshop on Open Location Data 2011                           Finnish Geodetic Institute   7
                                                                    janne.kovanen@fgi.fi
“Trains on a map” interface
Detailed information on trains
<rss version="2.0”>
 <channel xmlns:georss="http://www.georss.org/georss">
  <title>P 704</title>
  <description>Train information feed for train P 704</description>
  <lastBuildDate>Fri, 16 Sep 2011 13:57:05 +0300</lastBuildDate>
  <category>1</category>
  <georss:point>62.2989900000001 27.1673200000001</georss:point>
  <speed>33</speed>
  <heading>355</heading>
  <startStation>OL</startStation>
  <endStation>KUO</endStation>
  <status>1</status>
  <reasonCode/>
  <lateness>0</lateness>
  …
 </channel>
</rss>



  Workshop on Open Location Data 2011                           Finnish Geodetic Institute   8
                                                                    janne.kovanen@fgi.fi
“Trains on a map” interface
Detailed information on trains
<rss version="2.0"><channel xmlns:georss="http://www.georss.org/georss"><title>IC 71</title><description>Train information feed for train IC 71</description><lastBuildDate>Mon, 19 Sep 2011 11:41:47 +0300</
lastBuildDate><category>1</category><georss:point>62.2989900000001 27.1673200000001</georss:point><speed>33</speed><heading>355</heading><startStation>HKI</startStation><endStation>KAJ</endStation><status>1</
status><reasonCode> </reasonCode><lateness>0</lateness><item><guid isPermaLink="false">HKI</guid><title>HKI</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime/
><scheduledDepartTime>08:12</scheduledDepartTime><eta/><etd>08:12</etd><stationCode>HKI</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid
isPermaLink="false">PSL</guid><title>PSL</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>08:17</scheduledTime><scheduledDepartTime>08:18</
scheduledDepartTime><eta>08:17</eta><etd>08:18</etd><stationCode>PSL</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">TKL</
guid><title>TKL</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>08:27</scheduledTime><scheduledDepartTime>08:28</scheduledDepartTime><eta>08:27</
eta><etd>08:28</etd><stationCode>TKL</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">LH</guid><title>LH</title><description>Summary</
description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>09:06</scheduledTime><scheduledDepartTime>09:08</scheduledDepartTime><eta>09:06</eta><etd>09:08</etd><stationCode>LH</
stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">KV</guid><title>KV</title><description>Summary</description><pubDate>Mon, 19 Sep 2011
11:41:47 +0300</pubDate><scheduledTime>09:38</scheduledTime><scheduledDepartTime>09:52</scheduledDepartTime><eta>09:38</eta><etd>09:52</etd><stationCode>KV</stationCode><completed>1</completed><status>5</
status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">MR</guid><title>MR</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:30</
scheduledTime><scheduledDepartTime>10:31</scheduledDepartTime><eta>10:30</eta><etd>10:31</etd><stationCode>MR</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></
item><item><guid isPermaLink="false">MI</guid><title>MI</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:55</scheduledTime><scheduledDepartTime>10:58</
scheduledDepartTime><eta>10:55</eta><etd>10:58</etd><stationCode>MI</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">HAU</
guid><title>HAU</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:21</scheduledTime><scheduledDepartTime>11:22</scheduledDepartTime><eta>11:21</
eta><etd>11:22</etd><stationCode>HAU</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">PM</guid><title>PM</title><description>Summary</
description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:41</scheduledTime><scheduledDepartTime>11:46</scheduledDepartTime><eta>11:41</eta><etd>11:46</etd><stationCode>PM</
stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">SNJ</guid><title>SNJ</title><description>Summary</description><pubDate>Mon, 19 Sep 2011
11:41:47 +0300</pubDate><scheduledTime>12:14</scheduledTime><scheduledDepartTime>12:15</scheduledDepartTime><eta>12:14</eta><etd>12:15</etd><stationCode>SNJ</stationCode><completed>0</completed><status>5</


…

>09:06</scheduledTime><scheduledDepartTime>09:08</scheduledDepartTime><eta>09:06</eta><etd>09:08</etd><stationCode>LH</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></
item><item><guid isPermaLink="false">KV</guid><title>KV</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>09:38</scheduledTime><scheduledDepartTime>09:52</
scheduledDepartTime><eta>09:38</eta><etd>09:52</etd><stationCode>KV</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">MR</
guid><title>MR</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:30</scheduledTime><scheduledDepartTime>10:31</scheduledDepartTime><eta>10:30</
eta><etd>10:31</etd><stationCode>MR</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">MI</guid><title>MI</title><description>Summary</
description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:55</scheduledTime><scheduledDepartTime>10:58</scheduledDepartTime><eta>10:55</eta><etd>10:58</etd><stationCode>MI</
stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">HAU</guid><title>HAU</title><description>Summary</description><pubDate>Mon, 19 Sep 2011
11:41:47 +0300</pubDate><scheduledTime>11:21</scheduledTime><scheduledDepartTime>11:22</scheduledDepartTime><eta>11:21</eta><etd>11:22</etd><stationCode>HAU</stationCode><completed>1</completed><status>5</
status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">PM</guid><title>PM</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:41</
scheduledTime><scheduledDepartTime>11:46</scheduledDepartTime><eta>11:41</eta><etd>11:46</etd><stationCode>PM</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></
item><item><guid isPermaLink="false">SNJ</guid><title>SNJ</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>12:14</scheduledTime><scheduledDepartTime>12:15</
scheduledDepartTime><eta>12:14</eta><etd>12:15</etd><stationCode>SNJ</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">KUO</
guid><title>KUO</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>12:43</scheduledTime><scheduledDepartTime>12:47</scheduledDepartTime><eta>12:43</
eta><etd>12:47</etd><stationCode>KUO</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">SIJ</guid><title>SIJ</title><description>Summary</
description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>13:05</scheduledTime><scheduledDepartTime>13:06</scheduledDepartTime><eta>13:05</eta><etd>13:06</etd><stationCode>SIJ</
stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">LNA</guid><title>LNA</title><description>Summary</description><pubDate>Mon, 19 Sep 2011
11:41:47 +0300</pubDate><scheduledTime>13:32</scheduledTime><scheduledDepartTime>13:33</scheduledDepartTime><eta>13:32</eta><etd>13:33</etd><stationCode>LNA</stationCode><completed>0</completed><status>5</
status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">ILM</guid><title>ILM</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>13:48</
scheduledTime><scheduledDepartTime>13:50</scheduledDepartTime><eta>13:48</eta><etd>13:50</etd><stationCode>ILM</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></
item><item><guid isPermaLink="false">SKV</guid><title>SKV</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>14:13</scheduledTime><scheduledDepartTime>14:14</
scheduledDepartTime><eta>14:13</eta><etd>14:14</etd><stationCode>SKV</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">KAJ</
guid><title>KAJ</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>14:40</scheduledTime><scheduledDepartTime/><eta>14:40</eta><etd/><stationCode>KAJ</
stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item></channel></rss>




     Workshop on Open Location Data 2011                                                                                                                           Finnish Geodetic Institute                       9
                                                                                                                                                                       janne.kovanen@fgi.fi
Demo 2: Make the trains move
 // Add the trains layer in the init() through a function call
 function init() {
    // …
    updateTrains();
 }

 function updateTrains() {
      // Do not yet show the trains layer in the layer switcher
      var newTrainLayer = new OpenLayers.Layer.GeoRSS(
               “Train Feed”,
               “http://188.117.35.14/TrainRSS/TrainService.svc/AllTrains”,
               {projection: new OpenLayers.Projection(“EPSG:4326”),
      displayInLayerSwitcher: false});
      map.addLayer(newTrainLayer);
   // Add a listener for loading
      newTrainLayer.events.register("loadend", self,
               function(e) {trainsLoaded(e)});
 }
Workshop on Open Location Data 2011                                 Finnish Geodetic Institute 10
                                                                        janne.kovanen@fgi.fi
… Demo 2: Make the trains move
 // The update interval in milliseconds
 var trainSetUpdateTimeout = 2000;

 function trainsLoaded(event) {
      if(event.object == null)
               return;
      if(trainsLayer != null && trainsLayer != event.object) {
               map.removeLayer(trainsLayer, false);
      }
      trainsLayer = event.object;
     // Now show the trains layer on the map and in the layer switcher
      trainsLayer.setVisibility(true);
      trainsLayer.displayInLayerSwitcher = true;
      // Timed update
     self.setTimeout('updateTrains()', trainSetUpdateTimeout);
   }

                                      Example 2
Workshop on Open Location Data 2011                                Finnish Geodetic Institute 11
                                                                       janne.kovanen@fgi.fi
Demo 3: Extending OpenLayers
  var TrainRSS = OpenLayers.Class(OpenLayers.Format.XML, {
       initialize: function(options) {
                 OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
       },
       …
  }

  var TrainFeature = OpenLayers.Class(OpenLayers.Feature, {
       guid: "”, type: 0, speed: 0, heading: 0, status: 0,
       initialize: function(layer, lonlat, data) {
                 OpenLayers.Feature.prototype.initialize.apply(this, [layer, lonlat, data]);
       },
       …
  }




Workshop on Open Location Data 2011                                     Finnish Geodetic Institute 12
                                                                            janne.kovanen@fgi.fi
… Demo 3: Extending OpenLayers
  var TrainsRSS = OpenLayers.Class(OpenLayers.Format.GeoRSS, {
       layer: null,
       initialize: function(layer, options) {
                 OpenLayers.Format.GeoRSS.prototype.initialize.apply(this, [options]);
                 this.layer = layer;
       },
       …
  },

  var TrainsLayer = OpenLayers.Class(OpenLayers.Layer.GeoRSS, {
       initialize: function(name, location, options) {
                 OpenLayers.Layer.GeoRSS.prototype.initialize.apply(this,
                  [name, location, options]);
       },
       …
  },


Workshop on Open Location Data 2011                                   Finnish Geodetic Institute 13
                                                                          janne.kovanen@fgi.fi
“Trains on a map” interface
Train station information
<rss version="2.0">
 <channel xmlns:georss="http://www.georss.org/georss">
  <title />
  <description>Station information feed for station KML</description>
  <lastBuildDate>Thu, 03 Feb 2011 17:18:42 +0200</lastBuildDate>
  <category>Train System</category>
  <item>
     <guid isPermaLink="false">P274</guid>
     <category>1</category>
     <title>P 274</title>
     <description>Summary</description>
     <pubDate>Thu, 03 Feb 2011 17:18:42 +0200</pubDate>
     <georss:point>0 0</georss:point>
     …
    </item>
    …
  </channel>
</rss>
http://www.apps4finland.fi/fi/data/junat-kartalla-palvelun-rajapinta/
  Workshop on Open Location Data 2011                              Finnish Geodetic Institute 14
                                                                       janne.kovanen@fgi.fi

Weitere ähnliche Inhalte

Ähnlich wie Paikkatietotyöpaja2011 kovanen

Geospatial technologies
Geospatial technologiesGeospatial technologies
Geospatial technologies
Hal Seki
 
QoS based Admission Control using Multipath Scheduler for IP over Satellite N...
QoS based Admission Control using Multipath Scheduler for IP over Satellite N...QoS based Admission Control using Multipath Scheduler for IP over Satellite N...
QoS based Admission Control using Multipath Scheduler for IP over Satellite N...
IJECEIAES
 
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellitesDesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
Brenden Hogan
 

Ähnlich wie Paikkatietotyöpaja2011 kovanen (12)

Flagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertierFlagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertier
 
EuroGeographics Linked Data by geo.admin.ch /swisstopo
EuroGeographics Linked Data by geo.admin.ch /swisstopoEuroGeographics Linked Data by geo.admin.ch /swisstopo
EuroGeographics Linked Data by geo.admin.ch /swisstopo
 
Geospatial technologies
Geospatial technologiesGeospatial technologies
Geospatial technologies
 
SensorWeb SOS Pilot RIVM/Geonovum - Status
SensorWeb SOS Pilot RIVM/Geonovum - StatusSensorWeb SOS Pilot RIVM/Geonovum - Status
SensorWeb SOS Pilot RIVM/Geonovum - Status
 
QoS based Admission Control using Multipath Scheduler for IP over Satellite N...
QoS based Admission Control using Multipath Scheduler for IP over Satellite N...QoS based Admission Control using Multipath Scheduler for IP over Satellite N...
QoS based Admission Control using Multipath Scheduler for IP over Satellite N...
 
Processing and retrieval of geotagged unmanned aerial system telemetry
Processing and retrieval of geotagged unmanned aerial system telemetry Processing and retrieval of geotagged unmanned aerial system telemetry
Processing and retrieval of geotagged unmanned aerial system telemetry
 
Processing and Retrieval of Geotagged Unmanned Aerial System Telemetry
Processing and Retrieval of Geotagged Unmanned Aerial System TelemetryProcessing and Retrieval of Geotagged Unmanned Aerial System Telemetry
Processing and Retrieval of Geotagged Unmanned Aerial System Telemetry
 
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
 
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellitesDesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
 
Fast SOA with Apache Synapse
Fast SOA with Apache SynapseFast SOA with Apache Synapse
Fast SOA with Apache Synapse
 
Juniper mpls best practice part 1
Juniper mpls best practice   part 1Juniper mpls best practice   part 1
Juniper mpls best practice part 1
 
Top school in gurgaon
Top school in gurgaonTop school in gurgaon
Top school in gurgaon
 

Mehr von Apps4Finland

Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Apps4Finland
 
Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Apps4Finland
 
Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...
Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...
Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...
Apps4Finland
 
Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012
Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012
Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012
Apps4Finland
 
Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...
Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...
Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...
Apps4Finland
 
Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Apps4Finland
 
NewBiz4Finland 12.9.2012, Tero Piirainen
NewBiz4Finland 12.9.2012, Tero PiirainenNewBiz4Finland 12.9.2012, Tero Piirainen
NewBiz4Finland 12.9.2012, Tero Piirainen
Apps4Finland
 
NewBiz4Finland, Teemu Tapanila, AaltoES
NewBiz4Finland, Teemu Tapanila, AaltoESNewBiz4Finland, Teemu Tapanila, AaltoES
NewBiz4Finland, Teemu Tapanila, AaltoES
Apps4Finland
 
New biz4finland, teemu tapanila, aaltoes
New biz4finland, teemu tapanila, aaltoesNew biz4finland, teemu tapanila, aaltoes
New biz4finland, teemu tapanila, aaltoes
Apps4Finland
 
New b iz4finland, jukka heikkilä
New b iz4finland, jukka heikkiläNew b iz4finland, jukka heikkilä
New b iz4finland, jukka heikkilä
Apps4Finland
 
New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012
New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012
New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012
Apps4Finland
 
New biz4finland 12.9.2012, sami sahala
New biz4finland 12.9.2012, sami sahalaNew biz4finland 12.9.2012, sami sahala
New biz4finland 12.9.2012, sami sahala
Apps4Finland
 
New biz4finland 12.9.2012, olli rinne
New biz4finland 12.9.2012, olli rinneNew biz4finland 12.9.2012, olli rinne
New biz4finland 12.9.2012, olli rinne
Apps4Finland
 
New biz4finland 12.9.2012, mika hållfast
New biz4finland 12.9.2012, mika hållfast New biz4finland 12.9.2012, mika hållfast
New biz4finland 12.9.2012, mika hållfast
Apps4Finland
 
Newbiz4finland Sissonen, Pärssinen - joukkoliikennedata
Newbiz4finland   Sissonen, Pärssinen - joukkoliikennedata Newbiz4finland   Sissonen, Pärssinen - joukkoliikennedata
Newbiz4finland Sissonen, Pärssinen - joukkoliikennedata
Apps4Finland
 
New biz4finland jukka ahtikari
New biz4finland   jukka ahtikariNew biz4finland   jukka ahtikari
New biz4finland jukka ahtikari
Apps4Finland
 
New biz4finland, tommi arola
New biz4finland, tommi arolaNew biz4finland, tommi arola
New biz4finland, tommi arola
Apps4Finland
 
Stats4 finland 28.8.2012, veli matti jantunen
Stats4 finland 28.8.2012, veli matti jantunenStats4 finland 28.8.2012, veli matti jantunen
Stats4 finland 28.8.2012, veli matti jantunen
Apps4Finland
 

Mehr von Apps4Finland (20)

Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Olli Alm: Susi, Apps4Finland-työt Paikkatietomarkkinoilla 2012
 
Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Eero Hyvönen: Matkailusampo, Apps4Finland-työt Paikkatietomarkkinoilla 2012
 
Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...
Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...
Panu Koskela: Maailman Suurin Muistipeli, Apps4Finland-työt Paikkatietomarkki...
 
Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012
Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012
Olli Rinne: Apps4Finland-kilpailun esittely Paikkatietomarkkinoilla 2012
 
Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...
Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...
Jussi Mäkinen: Rautatiehistoriallinen kartta, Apps4Finland-työt Paikkatietom...
 
Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Jyrki Kuoppala: ShareNav, Apps4Finland-työt Paikkatietomarkkinoilla 2012
 
Robert Eriksson, Mikko Ahlström: Espoon aurinko- ja geoenergiakartat
Robert Eriksson, Mikko Ahlström: Espoon aurinko- ja geoenergiakartatRobert Eriksson, Mikko Ahlström: Espoon aurinko- ja geoenergiakartat
Robert Eriksson, Mikko Ahlström: Espoon aurinko- ja geoenergiakartat
 
Tuomas Husu: Taukkis, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Tuomas Husu: Taukkis, Apps4Finland-työt Paikkatietomarkkinoilla 2012Tuomas Husu: Taukkis, Apps4Finland-työt Paikkatietomarkkinoilla 2012
Tuomas Husu: Taukkis, Apps4Finland-työt Paikkatietomarkkinoilla 2012
 
NewBiz4Finland 12.9.2012, Tero Piirainen
NewBiz4Finland 12.9.2012, Tero PiirainenNewBiz4Finland 12.9.2012, Tero Piirainen
NewBiz4Finland 12.9.2012, Tero Piirainen
 
NewBiz4Finland, Teemu Tapanila, AaltoES
NewBiz4Finland, Teemu Tapanila, AaltoESNewBiz4Finland, Teemu Tapanila, AaltoES
NewBiz4Finland, Teemu Tapanila, AaltoES
 
New biz4finland, teemu tapanila, aaltoes
New biz4finland, teemu tapanila, aaltoesNew biz4finland, teemu tapanila, aaltoes
New biz4finland, teemu tapanila, aaltoes
 
New b iz4finland, jukka heikkilä
New b iz4finland, jukka heikkiläNew b iz4finland, jukka heikkilä
New b iz4finland, jukka heikkilä
 
New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012
New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012
New biz4finland, ilkka pirttimaa blindsquare käyttäjäkeskeinen-kehitys-2012
 
New biz4finland 12.9.2012, sami sahala
New biz4finland 12.9.2012, sami sahalaNew biz4finland 12.9.2012, sami sahala
New biz4finland 12.9.2012, sami sahala
 
New biz4finland 12.9.2012, olli rinne
New biz4finland 12.9.2012, olli rinneNew biz4finland 12.9.2012, olli rinne
New biz4finland 12.9.2012, olli rinne
 
New biz4finland 12.9.2012, mika hållfast
New biz4finland 12.9.2012, mika hållfast New biz4finland 12.9.2012, mika hållfast
New biz4finland 12.9.2012, mika hållfast
 
Newbiz4finland Sissonen, Pärssinen - joukkoliikennedata
Newbiz4finland   Sissonen, Pärssinen - joukkoliikennedata Newbiz4finland   Sissonen, Pärssinen - joukkoliikennedata
Newbiz4finland Sissonen, Pärssinen - joukkoliikennedata
 
New biz4finland jukka ahtikari
New biz4finland   jukka ahtikariNew biz4finland   jukka ahtikari
New biz4finland jukka ahtikari
 
New biz4finland, tommi arola
New biz4finland, tommi arolaNew biz4finland, tommi arola
New biz4finland, tommi arola
 
Stats4 finland 28.8.2012, veli matti jantunen
Stats4 finland 28.8.2012, veli matti jantunenStats4 finland 28.8.2012, veli matti jantunen
Stats4 finland 28.8.2012, veli matti jantunen
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

[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
 
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
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Paikkatietotyöpaja2011 kovanen

  • 1. Presenting trains in real-time in OpenLayers via GeoRSS Janne Kovanen Finnish Geodetic Institute Department of Geoinformatics and Cartography GI Norden June 8–9, 2011, Turku, Finland
  • 2. GeoRSS   An geographical syntax in RSS feeds (XML)   The coordinate reference system is WGS84   A coordinate conversion to a plane coordinate reference system is mostly required   Notice! In web browsers you typically see the interpretation of a RSS feed reader   view-source:http://188.117.35.14/TrainRSS/ TrainService.svc/trainInfo?train=P704   Updating from an app requires a proxy   Several exists (web ) Workshop on Open Location Data 2011 Finnish Geodetic Institute 2 janne.kovanen@fgi.fi
  • 3. GeoRSS and GeoRSS-Simple   For Atom 1.0, RSS 2.0 and RSS 1.0   GML content   <georss:where> <gml:Point> <gml:pos>45.256 -71.92</gml:pos> </gml:Point> </georss:where>   Too complex? Simpler alternative:   <georss:point>60.1 54.2</georss:point>   <georss:line>45.256 -110.45 46.46 -109.48 43.84 -109.86</ georss:line>   <georss:polygon>45.256 -110.45 46.46 -109.48 43.84 -109.86 45.256 -110.45</georss:polygon> Workshop on Open Location Data 2011 Finnish Geodetic Institute 3 janne.kovanen@fgi.fi
  • 4. OpenLayers and GeoRSS   OpenLayers.Layer.GeoRSS   Extends a layer for markers   As such OL downloads the feed only ones   Features are stored as OpenLayers.Feature   Does not contains methods for handling features!   OpenLayers.Format.GeoRSS   Format for reading GeoRSS   Only reads such as a title, description and geometry   Features are handled as OpenLayers.Feature.Vector   OpenLayers.LonLat vs. OpenLayers.Geometry Workshop on Open Location Data 2011 Finnish Geodetic Institute 4 janne.kovanen@fgi.fi
  • 5. “Trains on a map” interface All trains <rss version="2.0"> <channel xmlns:georss="http://www.georss.org/georss"> <title>Train Feed</title> <description>All trains feed</description> <lastBuildDate>Tue, 20 Sep 2011 15:00:35 +0300</lastBuildDate> <category>Train System</category> <item> <guid isPermaLink="false">H355</guid> <category>1</category><title>H 355</title> <description>Summary</description> <pubDate>Tue, 20 Sep 2011 15:00:35 +0300</pubDate> <georss:point>60.6302800000001 26.8929000000001</georss:point> <from>KTS</from><to>KV</to> <status>1</status><dir>345</dir> </item> ... </channel> </rss> http://www.apps4finland.fi/fi/data/junat-kartalla-palvelun-rajapinta/ Workshop on Open Location Data 2011 Finnish Geodetic Institute 5 janne.kovanen@fgi.fi
  • 6. Demo 1: Static one time feed // Use some proxy. Add the IP address to the proxy file before this OpenLayers.ProxyHost = “/cgi-bin/proxy.cgi?url=”; // Initialize OpenLayers function init() { var map = new OpenLayers.Map('map'); // Create the background map layers etc (the other demo) // Create the train layer var newTrainLayer = new OpenLayers.Layer.GeoRSS( “Train Feed”, “http://188.117.35.14/TrainRSS/TrainService.svc/AllTrains”, {projection: new OpenLayers.Projection(“EPSG:4326”)}); map.addLayer(newTrainLayer); // Add controls etc. } Workshop on Open Location Data 2011 Finnish Geodetic Institute 6 janne.kovanen@fgi.fi
  • 7. “Trains on a map” interface Detailed information on trains <rss version="2.0”> <channel xmlns:georss="http://www.georss.org/georss"> <title>P 704</title> <description>Train information feed for train P 704</description> <lastBuildDate>Fri, 16 Sep 2011 13:57:05 +0300</lastBuildDate> <category>1</category> <georss:point>62.2989900000001 27.1673200000001</georss:point> <speed>33</speed> <heading>355</heading> <startStation>OL</startStation> <endStation>KUO</endStation> <status>1</status> <reasonCode/> <lateness>0</lateness> … </channel> </rss> Workshop on Open Location Data 2011 Finnish Geodetic Institute 7 janne.kovanen@fgi.fi
  • 8. “Trains on a map” interface Detailed information on trains <rss version="2.0”> <channel xmlns:georss="http://www.georss.org/georss"> <title>P 704</title> <description>Train information feed for train P 704</description> <lastBuildDate>Fri, 16 Sep 2011 13:57:05 +0300</lastBuildDate> <category>1</category> <georss:point>62.2989900000001 27.1673200000001</georss:point> <speed>33</speed> <heading>355</heading> <startStation>OL</startStation> <endStation>KUO</endStation> <status>1</status> <reasonCode/> <lateness>0</lateness> … </channel> </rss> Workshop on Open Location Data 2011 Finnish Geodetic Institute 8 janne.kovanen@fgi.fi
  • 9. “Trains on a map” interface Detailed information on trains <rss version="2.0"><channel xmlns:georss="http://www.georss.org/georss"><title>IC 71</title><description>Train information feed for train IC 71</description><lastBuildDate>Mon, 19 Sep 2011 11:41:47 +0300</ lastBuildDate><category>1</category><georss:point>62.2989900000001 27.1673200000001</georss:point><speed>33</speed><heading>355</heading><startStation>HKI</startStation><endStation>KAJ</endStation><status>1</ status><reasonCode> </reasonCode><lateness>0</lateness><item><guid isPermaLink="false">HKI</guid><title>HKI</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime/ ><scheduledDepartTime>08:12</scheduledDepartTime><eta/><etd>08:12</etd><stationCode>HKI</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">PSL</guid><title>PSL</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>08:17</scheduledTime><scheduledDepartTime>08:18</ scheduledDepartTime><eta>08:17</eta><etd>08:18</etd><stationCode>PSL</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">TKL</ guid><title>TKL</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>08:27</scheduledTime><scheduledDepartTime>08:28</scheduledDepartTime><eta>08:27</ eta><etd>08:28</etd><stationCode>TKL</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">LH</guid><title>LH</title><description>Summary</ description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>09:06</scheduledTime><scheduledDepartTime>09:08</scheduledDepartTime><eta>09:06</eta><etd>09:08</etd><stationCode>LH</ stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">KV</guid><title>KV</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>09:38</scheduledTime><scheduledDepartTime>09:52</scheduledDepartTime><eta>09:38</eta><etd>09:52</etd><stationCode>KV</stationCode><completed>1</completed><status>5</ status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">MR</guid><title>MR</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:30</ scheduledTime><scheduledDepartTime>10:31</scheduledDepartTime><eta>10:30</eta><etd>10:31</etd><stationCode>MR</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></ item><item><guid isPermaLink="false">MI</guid><title>MI</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:55</scheduledTime><scheduledDepartTime>10:58</ scheduledDepartTime><eta>10:55</eta><etd>10:58</etd><stationCode>MI</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">HAU</ guid><title>HAU</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:21</scheduledTime><scheduledDepartTime>11:22</scheduledDepartTime><eta>11:21</ eta><etd>11:22</etd><stationCode>HAU</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">PM</guid><title>PM</title><description>Summary</ description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:41</scheduledTime><scheduledDepartTime>11:46</scheduledDepartTime><eta>11:41</eta><etd>11:46</etd><stationCode>PM</ stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">SNJ</guid><title>SNJ</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>12:14</scheduledTime><scheduledDepartTime>12:15</scheduledDepartTime><eta>12:14</eta><etd>12:15</etd><stationCode>SNJ</stationCode><completed>0</completed><status>5</ … >09:06</scheduledTime><scheduledDepartTime>09:08</scheduledDepartTime><eta>09:06</eta><etd>09:08</etd><stationCode>LH</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></ item><item><guid isPermaLink="false">KV</guid><title>KV</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>09:38</scheduledTime><scheduledDepartTime>09:52</ scheduledDepartTime><eta>09:38</eta><etd>09:52</etd><stationCode>KV</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">MR</ guid><title>MR</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:30</scheduledTime><scheduledDepartTime>10:31</scheduledDepartTime><eta>10:30</ eta><etd>10:31</etd><stationCode>MR</stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">MI</guid><title>MI</title><description>Summary</ description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>10:55</scheduledTime><scheduledDepartTime>10:58</scheduledDepartTime><eta>10:55</eta><etd>10:58</etd><stationCode>MI</ stationCode><completed>1</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">HAU</guid><title>HAU</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:21</scheduledTime><scheduledDepartTime>11:22</scheduledDepartTime><eta>11:21</eta><etd>11:22</etd><stationCode>HAU</stationCode><completed>1</completed><status>5</ status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">PM</guid><title>PM</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>11:41</ scheduledTime><scheduledDepartTime>11:46</scheduledDepartTime><eta>11:41</eta><etd>11:46</etd><stationCode>PM</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></ item><item><guid isPermaLink="false">SNJ</guid><title>SNJ</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>12:14</scheduledTime><scheduledDepartTime>12:15</ scheduledDepartTime><eta>12:14</eta><etd>12:15</etd><stationCode>SNJ</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">KUO</ guid><title>KUO</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>12:43</scheduledTime><scheduledDepartTime>12:47</scheduledDepartTime><eta>12:43</ eta><etd>12:47</etd><stationCode>KUO</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">SIJ</guid><title>SIJ</title><description>Summary</ description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>13:05</scheduledTime><scheduledDepartTime>13:06</scheduledDepartTime><eta>13:05</eta><etd>13:06</etd><stationCode>SIJ</ stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">LNA</guid><title>LNA</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>13:32</scheduledTime><scheduledDepartTime>13:33</scheduledDepartTime><eta>13:32</eta><etd>13:33</etd><stationCode>LNA</stationCode><completed>0</completed><status>5</ status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">ILM</guid><title>ILM</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>13:48</ scheduledTime><scheduledDepartTime>13:50</scheduledDepartTime><eta>13:48</eta><etd>13:50</etd><stationCode>ILM</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></ item><item><guid isPermaLink="false">SKV</guid><title>SKV</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>14:13</scheduledTime><scheduledDepartTime>14:14</ scheduledDepartTime><eta>14:13</eta><etd>14:14</etd><stationCode>SKV</stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item><item><guid isPermaLink="false">KAJ</ guid><title>KAJ</title><description>Summary</description><pubDate>Mon, 19 Sep 2011 11:41:47 +0300</pubDate><scheduledTime>14:40</scheduledTime><scheduledDepartTime/><eta>14:40</eta><etd/><stationCode>KAJ</ stationCode><completed>0</completed><status>5</status><georss:point>0 0</georss:point></item></channel></rss> Workshop on Open Location Data 2011 Finnish Geodetic Institute 9 janne.kovanen@fgi.fi
  • 10. Demo 2: Make the trains move // Add the trains layer in the init() through a function call function init() { // … updateTrains(); } function updateTrains() { // Do not yet show the trains layer in the layer switcher var newTrainLayer = new OpenLayers.Layer.GeoRSS( “Train Feed”, “http://188.117.35.14/TrainRSS/TrainService.svc/AllTrains”, {projection: new OpenLayers.Projection(“EPSG:4326”), displayInLayerSwitcher: false}); map.addLayer(newTrainLayer); // Add a listener for loading newTrainLayer.events.register("loadend", self, function(e) {trainsLoaded(e)}); } Workshop on Open Location Data 2011 Finnish Geodetic Institute 10 janne.kovanen@fgi.fi
  • 11. … Demo 2: Make the trains move // The update interval in milliseconds var trainSetUpdateTimeout = 2000; function trainsLoaded(event) { if(event.object == null) return; if(trainsLayer != null && trainsLayer != event.object) { map.removeLayer(trainsLayer, false); } trainsLayer = event.object; // Now show the trains layer on the map and in the layer switcher trainsLayer.setVisibility(true); trainsLayer.displayInLayerSwitcher = true; // Timed update self.setTimeout('updateTrains()', trainSetUpdateTimeout); } Example 2 Workshop on Open Location Data 2011 Finnish Geodetic Institute 11 janne.kovanen@fgi.fi
  • 12. Demo 3: Extending OpenLayers var TrainRSS = OpenLayers.Class(OpenLayers.Format.XML, { initialize: function(options) { OpenLayers.Format.XML.prototype.initialize.apply(this, [options]); }, … } var TrainFeature = OpenLayers.Class(OpenLayers.Feature, { guid: "”, type: 0, speed: 0, heading: 0, status: 0, initialize: function(layer, lonlat, data) { OpenLayers.Feature.prototype.initialize.apply(this, [layer, lonlat, data]); }, … } Workshop on Open Location Data 2011 Finnish Geodetic Institute 12 janne.kovanen@fgi.fi
  • 13. … Demo 3: Extending OpenLayers var TrainsRSS = OpenLayers.Class(OpenLayers.Format.GeoRSS, { layer: null, initialize: function(layer, options) { OpenLayers.Format.GeoRSS.prototype.initialize.apply(this, [options]); this.layer = layer; }, … }, var TrainsLayer = OpenLayers.Class(OpenLayers.Layer.GeoRSS, { initialize: function(name, location, options) { OpenLayers.Layer.GeoRSS.prototype.initialize.apply(this, [name, location, options]); }, … }, Workshop on Open Location Data 2011 Finnish Geodetic Institute 13 janne.kovanen@fgi.fi
  • 14. “Trains on a map” interface Train station information <rss version="2.0"> <channel xmlns:georss="http://www.georss.org/georss"> <title /> <description>Station information feed for station KML</description> <lastBuildDate>Thu, 03 Feb 2011 17:18:42 +0200</lastBuildDate> <category>Train System</category> <item> <guid isPermaLink="false">P274</guid> <category>1</category> <title>P 274</title> <description>Summary</description> <pubDate>Thu, 03 Feb 2011 17:18:42 +0200</pubDate> <georss:point>0 0</georss:point> … </item> … </channel> </rss> http://www.apps4finland.fi/fi/data/junat-kartalla-palvelun-rajapinta/ Workshop on Open Location Data 2011 Finnish Geodetic Institute 14 janne.kovanen@fgi.fi