19. dubna 2011

Sledujte online wifi tramvaj na mapě/twitteru - vytvořil jsem ji totiž API (mashup)

Mashup mého života - by mohl znít podtitul. A proč právě tak? Protože jsem spojil naprosto nespojitelné a podíval se na dvě nesourodé části odlišným pohledem. Nakonec se podařilo. Dokážu sledovat kudy jezdí tramvaj!

Na vše používám tyto technologie:

  • Google Gadgets API
  • Google Spreadsheet
  • Google Maps API
  • Google Reverse Geocoding
  • Twitter API
  • "Tramvaj API" :-)

A co to umí ?

V pravidelných intervalech zjišťuji jaká je GPS poloha tramvaje, pokud tramvaj popojela (více o fungování níže), tak uložím nové GPS údaje. Ty pak překreslím tady do té mapy

(mapu budu vylepšovat - chystám se přidat čas kdy byla naposledy viděna)

Zároveň posílám adresu na Twitter, takže sledujte účet @wifitramvaj
Historie
Poprvé mě myšlenka napadla po přednášce Michala Šrajera na VŠE. Konkrétně na afterparty, kde jsem si spojil starší článek na Živě.cz kde @jakubcizek popisoval jak je možné zjistit polohu wifi routerů. V tu chvíli mě napadlo monitorovat vozy Student Agency a když jsem s radostí sdílel přísedícim nápad, jejich reakce byly více než chladné (či méně než horké). Nápad jsem nechal uzrát a když se v Praze objevila Wifi Tramvaj, můj cíl byl jasný - odchytit ji (už to je samo o sobě výzvou), zjisti adresu Wifi routeru a pak doufat že má teoretická úvaha bude fungovat.


Jak to funguje

1) Tramvaj číslo 17 má wifi připojení, které je dostupné přes Access Point. Každé takové AP je jednoznačně identifikováno.
2) Obecně fungují mobilní Google Mapy tak, že při připojení se zjistí zda na zařízení (mobilu) je zapnutá geolokace. Pokud ano, tak se zpět odešle GPS souřadnice. Cílem je tak přesnější zaměření. Představte si že se připojíte v kavárně se svým notebookem (bez GPS přijmače) a ten Vám ukáze na mapě kde jste - někdo před Váma se již připojil a odeslanou ten identifikátor společně s polohou
3) Předminulý týden jsem si zjistil jedinečný identifikátor tramvaje (dejme tomu např. 11-22-33-44-55-66)
4) V pravidelných intervalech (zatím zhruba každou hodinu) zasílám dotaz na adresu http://www.google.com/loc/json, kde se ptám na souřadnice. Tělo dotazů vypadá takto

{
  "version":"1.1.0",
  "wifi_towers":[
    {
      "mac_address":"11-22-33-44-55-66"",
      "ssid":"UNKNOWN",
      "signal_strength":0
    }
  ]
}

a dostávám GPS.
více v článku Hackujeme Google: vím, kde je tvůj Wi-Fi router

Zároveň ještě provádím reverzní geocoding, abych dostal adresu v "lidském tvaru" :)

5) Pokud tramvaj popojela (a někdo se připojil se zapnutou GPS), tak dostávám nové údaje
6) Vše zobrazuji realtime na Google Mapě výš a ihned zasílám na Twitter (připomínám @wifitramvaj :)

Má to smysl?
Ano, určitě ano. I kdyby se to používalo minimálně, opět jsem si zkusil něco nového a zajímavého. Představte si to - dokázal jsem si vytvoři vlastní API Tramvaje, není to cool? Je, že? :) Navíc předpokládám že časem se bude tramvají vozit více lidí, kteří si zapnout Wifi/GPS a budou se koukat na mapy, takže ihned mám data - od kohokoliv, nemusí to být geek aby to ihned posílal na Twitter. Může to být klidně cizince, který se ihned připojí. Využívám crowd lidí.. Krásné a mazané. Cool & sexy ;-)

Pište komentáře, nápady, návrhy. Pokud často jezdíe Student Agency hurá, můžeme to rozjet více :)

Pokud se Vám článek líbil, ocením pokud ho nasdílíte či mě začnete sledovat na twitteru @codeas



Zajímá tě více?