SlideShare a Scribd company logo
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

More Related Content

Similar to Paikkatietotyöpaja2011 kovanen

Flagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertierFlagis linked open_data_stijn_goedertier
Flagis linked open_data_stijn_goedertier
Flagis VZW
 
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
geoportal of the federal authorities of the Swiss Confederation
 
Geospatial technologies
Geospatial technologiesGeospatial technologies
Geospatial technologiesHal Seki
 
SensorWeb SOS Pilot RIVM/Geonovum - Status
SensorWeb SOS Pilot RIVM/Geonovum - StatusSensorWeb SOS Pilot RIVM/Geonovum - Status
SensorWeb SOS Pilot RIVM/Geonovum - Status
Just van den Broecke
 
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
 
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
DataWorks Summit/Hadoop Summit
 
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
Kristopher Kane
 
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...
GeoSolutions
 
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellitesDesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellites
DesignOfAnExtensibleTelemetry&CommandArcitectureForSmallSatellitesBrenden Hogan
 
Fast SOA with Apache Synapse
Fast SOA with Apache SynapseFast SOA with Apache Synapse
Fast SOA with Apache Synapse
Paul Fremantle
 
Juniper mpls best practice part 1
Juniper mpls best practice   part 1Juniper mpls best practice   part 1
Juniper mpls best practice part 1
Febrian ‎
 
Top school in gurgaon
Top school in gurgaonTop school in gurgaon
Top school in gurgaon
Edhole.com
 

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

More from 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 2012Apps4Finland
 
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 2012Apps4Finland
 
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 2012Apps4Finland
 
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 2012Apps4Finland
 
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
Apps4Finland
 
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
Apps4Finland
 
NewBiz4Finland 12.9.2012, Tero Piirainen
NewBiz4Finland 12.9.2012, Tero PiirainenNewBiz4Finland 12.9.2012, Tero Piirainen
NewBiz4Finland 12.9.2012, Tero PiirainenApps4Finland
 
NewBiz4Finland, Teemu Tapanila, AaltoES
NewBiz4Finland, Teemu Tapanila, AaltoESNewBiz4Finland, Teemu Tapanila, AaltoES
NewBiz4Finland, Teemu Tapanila, AaltoESApps4Finland
 
New biz4finland, teemu tapanila, aaltoes
New biz4finland, teemu tapanila, aaltoesNew biz4finland, teemu tapanila, aaltoes
New biz4finland, teemu tapanila, aaltoesApps4Finland
 
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-2012Apps4Finland
 
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 sahalaApps4Finland
 
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 rinneApps4Finland
 
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 ahtikariApps4Finland
 
New biz4finland, tommi arola
New biz4finland, tommi arolaNew biz4finland, tommi arola
New biz4finland, tommi arolaApps4Finland
 
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 jantunenApps4Finland
 

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

Recently uploaded

Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

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