28. 1. 2009

Podpora GEO-mikroformátu

U stránek s “geotagem” se bude ve výsledcích vyhledávání nyní zobrazovat odkaz pro zobrazení místa na mapě.

Pomocí tzv. mikroformátů (viz microformats.org) lze na stránkách přisoudit některým textům sémantickou hodnotu tak, aby byly strojově rozpoznatelné a měly definovaný význam. Mikroformátů je celá řada, každý slouží pro jiný druh údaje. Asi nejpoužívanějším je tzv. hCard, který se používá jako “vizitka” pro osoby. Programy, které ho dokáží interpretovat pak například nabízejí přidání kontaktu přímo z web stránky do vašeho adresáře, telefonu, apod.

Určitý článek o mikroformátech vyšel už před časem na Lupě.

Náš robot nyní hledá ve stránkách geo-mikroformát. Pomocí něho lze specifikovat polohu v souřadném systému WGS84 (alias normální GPS pozice). Tímto lze svázat libovolnou stránku s místem na mapě.

Při zobrazování výsledků je pak u stránek s geotagem přidaný odkaz “Zobrazit na mapě”. Výsledek s geotagem vypadá např. takto:


http://search.seznam.cz/?q=botanicka+zahrada+site%3Adna.cdi.cz

Pokud je geotagů ve stránce rozpoznáno více, tak se u výsledku zobrazí pouze první z nich. Bohužel u výsledku nelze přehledně zobrazit neomezeně odkazů na mapu; pokud by někoho napadlo jak na to, dejte určitě vědět 🙂

Jak přidat jednoduše geotag do vašich stránek?

Mikroformáty specifikují několik možností, jak může geotag vypadat. Mikroformáty se používají tak, že se ve stránce u HTML značek okolo relevantního textu nastaví atributy class=”…” na předem známou hodnotu, která je právě určená standardem mikroformátů. Pokud mikroformáty neurčují jinak (např. <ABBR>), tak značka může být asi téměř libovolná. Zde jsou ve zkratce 3 možnosti:

1. Základní

<cokoliv class="geo">
<cokoliv class="latitude">37.408183</cokoliv>,
<cokoliv class="longitude">-122.13855</cokoliv>
</cokoliv>

2. Rozšířený

<cokoliv class="geo">
<abbr class="latitude" title="37.408183">N 37° 24.491</abbr>
<abbr class="longitude" title="-122.13855">W 122° 08.313</abbr>
</cokoliv>

3. Zkrácený

Pořadí čísel v title= je “latitude;longitude”.

<abbr class="geo" title="37.408183;-122.13855"> Popis lokace </abbr>

Čísla bohužel musí být vždy uvedena v desetinách stupňů; jinou variantu mikroformáty nepřipouštějí :-/ Pro převod ze stupňů, minut, vteřin na číslo v desetinách stupňů lze použít tento vzorec:
číslo_v_desetinách_stupně = stupně + minuty/60 + vteřiny/3600