Jak na API mapy.cz

Stejně jako před časem google.com i seznam.cz umožňuje využívat svůj mapový systém mapy.cz přes API. Zprovoznění je díky skvělému tutoriálu opravdu triviální. Přesto existuje pár věcí, které se v manuálu nedočtete...

Na http://api.mapy.cz/ je velice srozumitelný a jednoduchý návod, jak mapy zakomponovat do nekomerčních stránek. Já jsem se rozhodl tento systém využít k zobrazení horolezeckých objektů z okolí Hodkoviček. Výsledek si můžete prohlédnout.

Nemá tedy cenu, abych zde opisoval zmíněný tutoriál na http://api.mapy.cz/, uvedu jen pár drobností, které by mohly ušetřit chvilku času.
K vytvoření vlastní "vlaječky" v mapě lze použít metodu makeCustomImageMark, kterou můžeme zavolat např. takto:

mapa.makeCustomImageMark('obrazek_pasivni.png','obrazek_aktivni.png','#000','#000',20,29,10,29,'Skály v Řeži (L)');

Tímto vytvoříme vlaječku, která se v mapě zobrazí jako obrázek obrazek_pasivni.png, najede-li se na ní myší změní se na obrazek_aktivni.png. Obrázek má výšku 29px a šířku 20px, na objekt ukazuje pixelem na souřadnici [29,10] počítáno od horního levého okraje tj. v našem případě jde o prostředek dolní hrany obrázku.
K přeskoku na bod v mapě a přiblížení mapy v jeho okolí je dobré si napsat funkci:

<script language="JavaScript">
<!--
function prejdi(n,e)
{
var pp = mapa.wgsToPP(n,e);
mapa.zoomSet(14);
mapa.setCenter(pp.x,pp.y);
}
//-->
</script>

Přeskok pak zavoláme jako

<a href="javascript:prejdi('50d2m35.26sN','14d23m28.31sE');">Místo</a>

V databázi si souřadnice ukládám v klasickém textovém formátu, tak jak je lze získat na mapy.cz. Tj. 50°1'8.09"N,14°24'31.85"E. PHP funkce gps2wgs vrací pole o dvou prvcích ve formátu, který přijímá metoda wgsToPP.

function gps2wgs($gps)
{
$co[0]='/°/';
$cim[0]='d';
$co[1]="/'/";
$cim[1]='m';
$co[2]='/"/';
$cim[2]='s';
$co[3]='/ /';
$cim[3]='';
return preg_split('/,/',preg_replace($co, $cim, $gps));
}

Pozor na případné problémy s různým kódováním skriptu a databáze. Doporučuji vše v UTF8, i API má s jiným kódováním problémy (alespoň zatím).
Pro další informace doporučuji prohlédnout zdrojový kód mého článku Horolezecké terény.


kategorie: www