Geohashing


Jaro je čas, který s sebou přináší nové touhy a plány do budoucna. I na mě se jednou za čas přilepí pocit vyzkoušet něco nového, případně někde narazím na něco, co mě dokáže totálně pobláznit a definitivně tomu propadnout, než celý tento stav ve velmi brzké době zase nezmizí :-). Ne, nemám na mysli jarní zapalování lýtek mých vlastních, ani odhalování lýtek příslušnic něžného pohlaví. Mám na mysli věc mnohem více nerdí, ke které je spíše než vymýšlení originálního oslovení potřeba umět zahashovat řetězec algoritmem MD5. Mám na mysli Geohashing.

Image and video hosting by TinyPic

Ano, opravdu Geohashing, ne Geocaching, nespletl jsem se. Ovšem princip je velice podobný. Taky je k němu zapotřebí znát nějaké souřadnice, GPSka taky přijde vhod, stejně tak připojení k internetu pro získání Dow Jonesova indexu. Ale popořadě. V květnu 2008 vyšel na xkcd strip popisující algoritmus, jak získat náhodné souřadnice v rámci určité oblasti na celé zeměkouli. Představa je taková, že celý svět je rozdělen do mřížky 1×1 stupeň vždy počínaje celým číslem severní šířky a celým číslem východní délky o velikosti přibližně 110x110km. Každá takováto buňka se nazývá „gratikula“ (eng. graticule), která je většinou pojmenovaná podle největšího města, které v této oblasti leží. Každý den je na základě výše zmíněného Dow Jonesova indexu (ukazatel vývoje na americkém akciovém trhu, defakto jakýsi generátor pseudonáhodného čísla) vygenerována hodnota, která je spojena s aktuálním datem a zahashovaná algoritmem MD5. Výsledný 32bitový řetězec je rozdělen na dvě části, z nichž jedna po převodu dává přírůstek k severní šířce a druhá k východní délce. Tyto hodnoty se tedy přičtou k (celočíselným) výchozím souřadnicím dané gratikuly a vzniknou tak naprosto náhodné souřadnice místa uvnitř této oblasti. No a úkolem geohashera je se na tyto souřadnice v daný den dostat, zanechat tam zprávu a pořídit důkaz (foto).

Zní a vypadá to možná složitě, ale je to jednoduché. Existuje množství nástrojů, které výsledné souřadnice dokáží generovat, takže není nutné nic složitě ručně počítat. Mimo jiné existuje implementace pro iPhone, velmi pěkné počítadlo jako mashup uvnitř google mapy a v neposlední řadě, protože jsem majitelem telefonu se systémem Android, tak vzniká i implementace pro tento systém. To bude zřejmě důvodem existence tohoto článku – abych se pochlubil a dal vědět, že je se na co těšit :-). V prvotní fázi se seznamuju s SDK Androida a zkouším vyvíjet, ale počítám, že do konce příštího týdne by mohla spatřit světlo světa první betaverze generátoru geohashe.

Takže bych poprosil o poctivé sledování tématu geohashing v tomto blogu, protože se budou ve velmi brzké době dít veliké věci! Mám i veliké množství nápadů ne přímo do aplikace, ale i pro web a velmi rád bych je všechny uvedl do reality.


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *