Srovnání aplikačních prostředí pro vlastní webovou mapovou aplikaci.

Semestrální práce z předmětu AGI

Martina Šmejkalová


Table of Contents

Úvod
Srovnání produktů
Smluvní podmínky
Technologické možnosti
Mapové podklady
Dostupnost a kompletnost dokumentace
Budoucnost aplikačního prostředí
Závěr
Základní pojmy
Bibliography

Abstract

Účelem semestrální práce je výběr nejvhodnějšího aplikačního prostředí pro vlastní webovou mapovou aplikaci. V současné době existuje celá řada aplikačních prostředí s různě bohatou podporou pro vytváření vlastních webových mapových aplikací. Ve své semestrální práci srovnávám pouze tři v České republice nejznámější služby tohoto typu a jiný přístup pomocí nástroje OpenLayers, a to z následujících hledisek: smluvní podmínky, technologické možnosti prostředí, poskytované mapové podklady, dostupnost a kompletnost dokumentace a budoucnost aplikace vytvořené na základě zmíněných aplikačních prostředí nebo pomocí nástroje OpenLayers. Poslední jmenované kritérium je vlastně důvodem vzniku této semestrální práce.

Úvod

Mapové aplikační prostředí je služba umožňující nejen vložení mapy na stránky, ale také vytvoření vlastní webové aplikace. K dispozici mohou být například funkce pro vykreslení vektorových vrstev, podpora pro různé souřadnicové systémy, funkce pro práci s informačními bublinami a mnohé další. Součástí aplikačního prostředí mohou být i předpřipravené třídy pro vlastní ovládací prvky a značky. Důležitou součástí služby je poskytování mapových podkladů a dokumentace s příklady. Pro získání přístupového klíče ke službě je nutná registrace.

Srovnání produktů

Smluvní podmínky

Atlas AMapy API

Atlas.cz je třetí největší český portál, který od 22. února 2008 vlastní Centrum.cz Holding BV, holandská společnost, kterou vlastní nadnárodní investiční společnost Warburg Pincus. Využití aplikačního prostředí je podmíněno registrací a odsouhlasením licenční smlouvy. Zde zmiňuji pouze základní body smlouvy.

  • AMapy API lze na nekomerčních stránkách používat volně bez omezení,

  • pokud zátěž přesáhne významně průměr, nebude služba zastavena, ale provozovatel mashup služby bude kontaktován a bude mu nabídnuta dodatečná konektivita,

  • AMapy API lze na komerčních stránkách používat volně do té doby, dokud je služba uživatelům poskytovaná bezplatně, veřejně a bez omezení,

  • AMapy API nelze užít jako součást placené aplikace, nebo uzavřené aplikace např. intranetové,

  • mashup se musí odkazovat na aktuální verzi AMapy API.

Bližší informace naleznete na internetových stránkách AMapy API (zdroj [4]).

Mapy API

Mapy API jsou součástí služeb, které poskytuje největší český portál Seznam.cz. Většinovým vlastníkem Seznam.cz je Ivo Lukačovič. Na stránkách portálu Lupa.cz jsem nalezla spekulativní článek týkající se prodeje tohoto portálu. Pro využití aplikačního prostředí je opět nutná registrace a souhlas s licenční smlouvou. Ze smlouvy uvádím základní body:

  • Mapy API lze použít pouze pro nekomerční provoz,

  • Mapy API má k dispozici omezené mapové podklady oproti službě Mapy.cz,

  • Mapy API má omezený denní počet zobrazení (v současné době 1000 denně).

Bližší informace naleznete ve zdroji [15].

Google Maps API

Největší objem akcií Google vlastní Shriram Kavitark Ram a Kordestani Omid, největšími institucionálními vlastníky akcií Google jsou FMR Corporation, Capital Research and Management a AXA. K využívání služby je také nutná registrace.

Licenční podmínky (jedná se o volný překlad základních podmínek):

  • Není stanoven denní limit pro zobrazení stránek využívajících Maps API. V případě, že předpokládáte více jak 500,000 zobrazení za den, kontaktujte naši společnost, abychom Vám zvýšili přenosovou kapacitu.

  • Je stanoven limit pro geocoding (transformace adresy na zeměpisné souřadnice).

  • Maps API neobsahuje reklamu, o případné změně se dozvíte nejpozději 90 dní předem na Google Maps API Blog.

  • Vaše služba musí být volně dostupná koncovým uživatelům. Pro využití Google mapping technology v jiných typech aplikací použijte Google Maps API Premier.

  • Je zakázáno měnit a překrývat logo nebo atributy mapy.

  • Vaší povinností je pravidelně obnovovat vaše stránky v závislosti na vývoji Google API, o změnách budete informováni na Google Maps API Blog. Pokud bude provedena nekompatibilní změna, nejpozději do měsíce se dozvíte, jak ji opravit.

  • Je zakázáno používat API k identifikaci osobních informací či zobrazování míst s nelegální činností. Nezapomeňte, že Google rozhoduje o udělení nebo odepření práv využívat API. Ujistěte se, že Vaše stránky budou v souladu s těmito podmínkami.

Bližší informace naleznete na stránkách Google Maps API (zdroj [13]).

OpenLayers

OpenLayers není služba jako výše zmíněné produkty. Jedná se o open-source produkt s BSD licencí, kterou naleznete pod odkazem [19]. BSD (Berkeley Software Distribution) licence umožňuje využívání a šíření jak zdrojového kódu programu (původního či změněného), tak jeho binární formy. Jedinou podmínkou je uvedení autora, informace o licenci a upozornění na zřeknutí se odpovědnosti za dílo.

OpenLayers je pouze nástrojem, který nedisponuje vlastními mapovými podklady, ale je velmi dobře přizpůsoben k využívání “cizích” mapových podkladů (například pomocí služby WMS). Je to knihovna funkcí založených na JavaScriptu pro vytváření webových geografických aplikací, podobná dříve zmíněným.

Smluvní podmínky - závěry

Všechny zmíněné služby neposkytují kompletní zdrojový kód aplikačního prostředí, ale umožňují modifikovat pouze vybrané fukce, fungují na bázi klasické copyright-licence. Ve smluvních podmínkách je zakomponováno, že si poskytovatelé vyhrazují právo službu kdykoli uzavřít. To je důvod, proč se ve své semestrální práci nezaměřuji jen na služby, ale porovnávám je s open-source nástrojem OpenLayers.

Z hlediska smluvních podmínek je nejméně výhodné Mapy API, které poskytuje pouze omezené mapové podklady oproti službě Mapy.cz, a má limitovaný počet denních zobrazení. Podmínky samotného využívání jednotlivých služeb jsou srovnatelné. OpenLayers má nejméně omezující podmínky užití.

Technologické možnosti

V této kapitole srovnávám základní funkce, které jsou u jednotlivých produktů k dispozici. Všechna API mají podporu pro AJAX, DOM scripting (skupina jazyků XML ovládaných JavaScriptem). Jsou uzpůsobena pro internetové prohlížeče Internet Explorer, Mozilla Firefox a Opera.

Atlas AMapy API

Atlas AMapy API umožňuje připojení vlastních mapových vrstev, obsahuje předpřipravené třídy pro vlastní ovládací prvky a značky (uzpůsobeno pro velké množství značek), funkce pro kreslení vektorových tras, vytvoření informační bubliny pro krátké textové zprávy, bubliny s integrovanou galerií a s možností zobrazení HTML stránky (nastavitelná velikost bubliny). API je uzpůsobeno pro různé druhy ovládání - dvojklik levým i pravým tlačítkem myši, kolečko. Dvouklik umístí novou pozici do středu mapy, kolečko myši pozici zachová, tzv. sofistikovaný zoom. Další součástí jsou metody pro počítání průsečíků obdélníků a úseček.

API podporuje tři souřadnicové systémy - S-42, S-JTSK a WGS-84.

Mapy API

Mapy API se dělí na API 1 a API 2. API 1 již není podporováno, ale lze jej dále používat, současná dokumentace se vztahuje k API 2. API neumožňuje připojení vlastních mapových vrstev, obsahuje třídy pro vektorovou vrstvu, přidání ovládacích prvků a značek a pro vytvoření informačních bublin. Ovládání je možné pomocí myši (včetně kolečka) a klávesnice, buď pouze pohyb nebo zoom nebo obojí (pro oba typy ovládání). Dvouklik levým tlačítkem myši mapu přiblíží, pravým tlačítkem oddálí. Umožňuje nastavit stupeň přiblížení a střed mapy.

Obsahuje funkce pro transformaci mezi souřadnicovými systémy S-JTSK, UTM a WGS-84.

Google Maps API

Google Maps API umožňuje vlastní mapové podklady, ovládací prvky a značky. Ovládání je stejné jako u Atlas AMapy API. Podporuje vykreslování vektorových tras a informačních bublin proměnné velikosti, do kterých lze vkládat například fotografie nebo zobrazovat HTML stránku. Google Maps API umožňuje vytvářet obrazy map. Ty lze aplikovat bez nutnosti použití JavaScriptu nebo je použít v jiných systémech.

Google Maps API podporuje geocoding, používá WGS-84. Do tohoto systému lze pomocí knihovních funkcí (např. Proj4, knihovna kartografických zobrazení) transformovat souřadnice z národního systému.

OpenLayers

OpenLayers umožňuje přidání vlastní vrstvy, obsahuje funkce pro vkládání značek a ovládacích prvků. Ovládání je možné pomocí klávesnice i myši s výjimkou pravého tlačítka, které má ponechanou standardní funkci (zobrazení nabídky: kopírovat, uložit...). Lze nastavit střed mapy a přiblížení, vkládat informační bulbiny a vykreslovat vektorové trasy.

OpenLayers využívá pro transformaci mezi souřadnicovými systémy již zmíněnou knihovní funkci Proj4. Podporuje mimo jiné i zobrazení mapy v S-JTSK.

Technologické možnosti - závěry

Podle technologických možností lze produkty seřadit takto. Nejširší možnosti mají OpenLayers (podpora WMS), Google Maps API (nejvíc funkcí), dále Atlas AMapy API a nejchudší možnosti má Mapy API, které neumožňuje vytvářet vlastní mapové vrstvy. Nejširší možnosti v případě zobrazení informačních bublin nabízejí Atlas AMapy API a Google Maps API. Do informační bubliny je možné vložit i HTML stránku. Ovládání mapy je ve všech případech podobné, jen u OpenLayers je z ovládání vynecháno pravé tlačítko myši.

Mapové podklady

Nejlepší mapové podklady ve formě letecké ortofotomapy poskytují Atlas AMapy API a Mapy API. Na obrázku jsou výřezy z obou leteckých map (zdroje [8], [14]). Letecká ortofotomapa v levé části obrázku (poskytovaná Atlas AMapy API) má jasnější barvy, což může na některé lidi působit rušivě. Já osobně bych dala přednost výřezu v pravé části obrázku, který mi připadá na první pohled přehlednější. Z hlediska rozlišení jsou obě mapy srovnatelné.

Figure 1. Obr. 1: Porovnání ortomapy Amapy.cz, Mapy.cz

Obr. 1: Porovnání ortomapy Amapy.cz, Mapy.cz

Satelitní mapa poskytovaná v pořadí třetím portálem, Google.com, má mnohem menší rozlišení než obě předchozí. Na obrázku je ukázka satelitní mapy při největším možném zvětšení a při zvětšení, kdy obraz ještě zůstává čitelný (zdroj [9]). Kvalita vektorových map (základních) je ve všech třech případech srovnatelná.

Figure 2. Satelitní mapa od Google.com

Satelitní mapa od Google.com

OpenLayers nedisponuje vlastními mapovými podklady, je však uzpůsoben k využívání “cizích” mapových podkladů (Google, Yahoo, OpenStreetMap, MSN Virtual Earth...), podporuje také WMS službu (geoportal.cenia.cz, cuzk.cz...).

Dostupnost a kompletnost dokumentace

Atlas AMapy API

Ke všem funkcím je zpracována stručná, ale přehledná dokumentace (zdroj [1]). Na úvodní stránce pod odkazem Průvodce po API jsou popsány základní kroky pro práci s aplikačním prostředím (přidání mapy do webových stránek, přidání ovládacích prvků mapy, označení místa na mapě, rozmístění značek v mapě, nalezení nejvhodnějšího měřítka a středu pro vybranou skupinu značek, zobrazení informační bubliny, vykreslení vektorové trasy). Pod dalšími odkazy (zdroje [2], [3], [5], [6], [7]) naleznete celou řadu příkladů, které pomohou snáze pochopit dostupné funkce.

Mapy API

K aplikačnímu prostředí je zpracován referenční manuál, který naleznete pod odkazem [18]. Pod odkazem Manuál (zdroj [16]) na úvodní stránce jsou opět zpracovány základní kroky pro práci s tímto produktem. Jedná se o načtení mapy, nastavení stupně a přiblížení středu, nastavení interakce s uživatelem (ovládání myší, výběr rámečkem), přidání značek do mapy a jejich interakce, přidání ovládacích prvků a na závěr následuje ukázka ovládání dvou map. Pod odkazem Pokročilé ukázky (zdroj [17]) naleznete ukázky práce s API.

Google Maps API

Dokumentaci ke Google Maps API naleznete pod odkazem [10] . K porozumění dokumentaci je nutná znalost anglického jazyka. Pod odkazem Code Samples - Examples (zdroj [12]) jsou příklady na použití značek, polyline, polygonů atd. K dispozici je také Demo Gallery (zdroj [11]), kde jsou k nahlédnutí již vytvořené aplikace. Tato galerie obsahuje zhruba 90 ukázek.

OpenLayers

Stejně jako v případě Google Maps API je nutná znalost anglického jazyka. Abecední seznam funkcí včetně kódu a bližších informací naleznete pod odkazem [19]. Dokumentace je psaná podobným stylem jako v případě Atlas AMapy API. Pod odkazem [20] je k dipozici sada ukázkových příkladů, kterých je opět kolem 90.

Dostupnost a kompletnost dokumentace - závěry

Nejrozsáhlejší dokumentace je zpracována pro službu Google Maps API. K jejímu porozumění je nutná znalost anglického jazyka. Stejně je tomu i v případě dokumentace k nástroji OpenLayers. “První kroky” pro vytvoření vlastní aplikace jsou nejlépe popsány pro Atlas AMapy API. Pokročilejší příklady mají srozumitelně zpracovány všechny produkty. Nejméně příkladů nalezneme pro Mapy API.

Budoucnost aplikačního prostředí

Budoucnost aplikačního prostředí je důležitá otázka při tvorbě vlastní webové aplikace, bohužel velice těžko zodpověditelná. Přesto by se dal sestavit alespoň přibližný žebříček stálosti aplikace. V současné době je asi nejohroženější budoucnost Atlas AMapy API. Hlavní důvody, které mě k tomuto úsudku vedou, jsou odchod autora celého API a nedávný prodej portálů Atlas.cz spolu s Centrum.cz nadnárodní investiční společnosti Warburg Pincus, dále pak články vztažené k tomuto tématu na portálu Lupa.cz.

Méně ohroženo je pravděpodobně Mapy API, jelikož majitel portálu Seznam.cz, který tuto službu poskytuje, zatím o prodeji neuvažuje. Ale jak jsem zmínila v kapitole Smluvní podmínky, Mapy API na internetu již koloval spekulativní článek o možném prodeji.

Aplikační prostředí Google Maps API se zdá být v současné době nejstabilnější službou. Jeho poskytovatelem je celosvětový portál Google.com, jehož akcie nejsou v rukou jednoho člověka.

Nejméně ohrožená je funkčnost open-source produktu OpenLayers právě z důvodu otevřených zdrojových kódů. V tomto případě mám na mysli skutečnost, že je možné stáhnout celou knihovnu zdrojových kódů a například případný zánik internetové stránky nemůže ohrozit budoucnost vytvořené aplikace. Nevýhodou je, že není zaručen vývoj produktu, protože nemá svého sponzora, to už se ale týká otázky budoucnosti z jiného pohledu, než jakým se ve své semestrální práci zabývám.

Závěr

Po uvážení všech pro a proti se domnívám, že nejlepším základem pro vytvoření vlastní webové mapové aplikace je knihovna OpenLayers. Z hlediska smluvních podmínek je nejméně omezující. A to i v případě, že uvažujeme pravděpodobné, zde opomenuté, smlouvy s jinými službami za účelem využívání jejich mapových podkladů. Nejsme totiž vázani jen na jednu službu a tedy na jedny mapové podklady. OpenLayers má dále široké technologické možnosti a nehrozí “uzavření” zdrojových kódů.

Závěr ze semestrální práce využiji ve své diplomové práci. Z tohoto pohledu také byla semestrální práce vytvořena. Srovnávala jsem produkty z hledisek, která jsou důležitá konkrétně pro moji webovou mapovou aplikaci. Jednotlivá API se vyvíjí, proto tato srovnání přestanou být časem aktuální.

Základní pojmy

API

(Application Programming Interface) je rozhraní pro programování aplikací, jedná se o sbírku procedur, funkcí či tříd knihovny (programu nebo jádra operačního systému), které může programátor využívat. API určuje, jakým způsobem se tyto funkce mají volat.

JavaScript

je skriptovací jazyk používaný pro tvorbu webových klientských aplikací.

Bibliography

Zdroje informací

AMapy API. Amap dokumentace. [online]. 2008. Atlas.cz, 9.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/docs/files/AMap-js.html >.

AMapy API. Další příklady. [online]. 2008. Atlas.cz, Centrum.cz, 10.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/anotherExamples.aspx >.

AMapy API. O API. [online]. 2008. Atlas.cz, Centrum.cz, 10.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/features.aspx >.

AMapy API. Podmínky užití. [online]. 2008. Atlas.cz, Centrum.cz, 10.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/licence.aspx >.

AMapy API. Pokročilé příklady. [online]. 2008. Atlas.cz, Centrum.cz, 10.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/advancedExamples.aspx >.

AMapy API. Principy API. [online]. 2008. Atlas.cz, Centrum.cz, 10.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/principles.aspx >.

AMapy API. Průvodce po API. [online]. 2008. Atlas.cz, Centrum.cz, 10.5.2008. Dostupné z: <  http://amapy.atlas.cz/api/examples.aspx >.

AMapy.cz. Kvilda. [online]. 2008. AMapy.cz - Atlas.cz, 9.5.2008. Dostupné z: <  http://amapy.atlas.cz/?from=amapy.cz#x=-819991@y=-1152544@cs=1@sidx=12@pg=1@pl=@app=2@q=kvilda >.

Google Maps. Kvilda. [online]. 2008. Google, 10.5.2008. Dostupné z: <  http://maps.google.com/ >.

Google Maps API. Google Map API Concepts. [online]. 2008. Google, 9.5.2008. Dostupné z: <  http://code.google.com/apis/maps/documentation/index.html >.

Google Maps API. Google Maps API Demo Gallery. [online]. 2008. Google, 9.5.2008. Dostupné z: <  http://code.google.com/apis/maps/documentation/demogallery.html >.

Google Maps API. Google Maps API Examples. [online]. 2008. Google, 9.5.2008. Dostupné z: <  http://code.google.com/apis/maps/documentation/examples/index.html >.

Google Maps API. Sign Up for the Google Maps API. [online]. 2008. Google, 10.5.2008. Dostupné z: <  http://code.google.com/apis/maps/signup.html >.

Mapy.cz. Licenční ujednání a vytvoření klíče. [online]. 2006. Seznam.cz, a.s., 9.5.2008. Dostupné z: <  http://api.mapy.cz/keygen >.

Mapy.cz. Manuál. [online]. 2006. Seznam.cz, a.s., 9.5.2008. Dostupné z: <  http://api.mapy.cz/static?page=manual >.

Mapy.cz. Pokročilé ukázky. [online]. 2006. Seznam.cz, a.s., 9.5.2008. Dostupné z: <  http://api.mapy.cz/static?page=advance >.

Mapy.cz. Referenční manuál. [online]. 2007-2008. Seznam.cz, a.s., 9.5.2008. Dostupné z: <  http://api.mapy.cz/static?doc=index >.

OpenLayers. [online]. 2008. OpenLayers, 9.5.2008. Dostupné z: <  http://openlayers.org/ >.

OpenLayers - examples. [online]. 2008. OpenLayers, 10.5.2008. Dostupné z: <  http://openlayers.org/dev/examples/example-list.html >.