Internet Ombord API med tågkoordinater

I morse steg jag på SJ 525 i Stockholm, anslöt till det trådlösa nätverket ombord för att få lite gjort. För att få igång internetanslutningen besöker jag i vanlig ordning någon webbplats och att blir vidarebefordrad till inloggningsformuläret för Internet Ombord. Då upptäckte jag något intressant. Webbadressen jag blev vidarebefordrad till innehåller faktiskt tågets aktuella koordinater.

http://ombord.sj.se/?mac=78:CA:39:BB:15:02&longitude=17.998610&latitude=59.259320

Genom att göra en mängd frågor fick jag snabbt ihop koordinaterna för tågets färd ut från Stockholm C.

Som tidigare nämnt förmedlas inte denna information vidare till varken Trafikverket eller andra intressenter. Däremot presenteras det en enklare karta med tågets position på ombord.sj.se. Efter att ha kikat lite efter resurser som ligger till grund för kartan hittade jag ett API med enklare ombordinformation.

Metoder

Get connectivity

GET /{format}/connectivity/[?callback={function}]
Exempelsvar för /xml/connectivity/:

<?xml version="1.0" encoding="UTF-8"?>
<connectivity>
    <online type="integer">1</online>
    <links type="array">
        <link>
            <index type="integer">2</index>
            <device_type type="string">ethernet</device_type>
            <device_subtype type="string">unavailable</device_subtype>
            <device_state type="string">down</device_state>
            <link_state type="string">disconnected</link_state>
            <rssi type="integer">-1</rssi>
            <technology type="string">unavailable</technology>
            <operator_id type="integer">-1</operator_id>
        </link>
        <link>
            <index type="integer">101</index>
            <device_type type="string">modem</device_type>
            <device_subtype type="string">sierra-8700</device_subtype>
            <device_state type="string">up</device_state>
            <link_state type="string">available</link_state>
            <rssi type="integer">-85</rssi>
            <technology type="string">hspa</technology>
            <operator_id type="integer">24005</operator_id>
            <umts_info>
                <net_status type="integer">1</net_status>
                <lac type="string">0018</lac>
                <cellid type="string">00183689</cellid>
            </umts_info>
        </link>
        <link>
            <index type="integer">103</index>
            <device_type type="string">modem</device_type>
            <device_subtype type="string">sierra-8700</device_subtype>
            <device_state type="string">up</device_state>
            <link_state type="string">available</link_state>
            <rssi type="integer">-78</rssi>
            <technology type="string">dc-hspa+</technology>
            <operator_id type="integer">24004</operator_id>
            <umts_info>
                <net_status type="integer">1</net_status>
                <lac type="string">0502</lac>
                <cellid type="string">04047224</cellid>
            </umts_info>
        </link>
   </links>
</connectivity>

Get position

GET /{format}/position/[?callback={function}]
Exempelsvar för /xml/position/:

<?xml version="1.0" encoding="UTF-8"?>
<position>
    <time type="double">1316243696</time>
    <latitude type="double">59.0026</latitude>
    <longitude type="double">16.269718</longitude>
    <altitude type="double">63.1</altitude>
    <speed type="double">44.556</speed>
    <cmg type="double">257.3</cmg>
    <satellites type="integer">11</satellites>
</position>

Get system

GET /{format}/system/[?callback={function}]
Exempelsvar för /xml/system/:

<?xml version="1.0" encoding="UTF-8"?>
<system>
    <system_id type="integer">1086</system_id>
</system>

Get users

GET /xml/users/[?callback={function}]
Exempelsvar för /xml/users/:

<?xml version="1.0" encoding="UTF-8"?>
<users> 
    <total type="integer">80</total> 
    <online type="integer">34</online> 
</users>

Get user

GET /{format}/user/[?callback={function}]
Exempelsvar för /xml/user/:

<?xml version="1.0" encoding="UTF-8"?>
<user>
    <ip type="string">10.101.1.69</ip>
    <mac type="string">78:CA:39:BB:15:02</mac>
    <online type="integer">12160</online>
    <userclass type="integer">2</userclass>
</user>
Tweet

Svara på inlägget


Hittills 2 kommentarer

Rickard Pettersson (@RickardP)

Jäkligt intressant, dags att börja fundera ut lite användning av det till sin tågapp :-)

Erik Pettersson

Rickard: Ja, det tycker jag verkligen, trevlig helg!

Ping- & trackbacks

API Måndag – Google+ API, Trafiklab, SJ API « API – Mashup.se

[...] APIet hittade ett okänt SJ API i veckan (jag har i alla fall inte hört talats om det tidigare). SJ Internet Ombord har ett API där man bla kan ta reda på tågets position. Informationen verkar endast användas för att visa [...]