IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Úvod do tvorby mapových aplikací v Google Maps API

K čemu je to dobré?

Možnost přidávání mapového pole do obsahu webových stránek roste na oblibě. Cesta, jak toho docílit je poměrně snadná. Dnes pro průměrného webového vývojáře tedy není problém využít služeb nabízených několika nejpopulárnějšími provozovateli mapových portálů, jako jsou například Google Maps a Mapy.cz.

V této sérii článků se zaměříme na práci s mapovým polem poskytovaným skrze Google Maps API for JavaScript. Výhodou využití takové služby je, že se nemusíte starat o programování základních funkcí, jako jsou posun po mapě, přibližování a podobně. Jedná se o intuitivní, uživatelsky přívětivé a známé prostředí pro práci s mapou na webu. Google Maps API však nabízí mnohem více než jen pouhé vložení mapy do obsahu stránek, počínaje vkládáním vlastních bodů, přes přizpůsobování ovládacích prvků až po animované přesuny mezi lokacemi. Ovládnutí tohoto nástroje se tedy může stát nikoli pouze užitečným pomocníkem při doplnění obsahu stránek o dynamickou mapu, ale lze využít pro tvorbu komplexní a rozsáhlé mapové aplikace na celou variaci témat.

Google Maps API a jak na to?

V červnu roku 2005 byla spuštěna služba Google Maps API, za účelem poskytnout vývojářům možnost integrace Google map do obsahu jejich webových stránek. Také byla vydána první verze Google Maps for JavaScript API. Během let docházelo k drobným změnám licence zpravidla s příchodem nové verze. V současné době při verzi Google Maps JavaScript API v3 je nekomerční využití zdarma s limitem 25 000 načtení mapy za den.

K praktickému použití je nutná pouze předchozí znalost základů HTML, JavaScriptu a hodí se obecné povědomí o principech objektově orientovaného programování. Všechny znalosti můžete hravě získat například projitím příslušných tutoriálů na ITnetwork.cz. Dále pro praktické použití bude nutné vlastnit Google účet (ale kdo ho dnes nemá, že? :-) ).

Hello Map!

Je dobrým programátorským zvykem začínat první program vypsáním dialogové hlášky „Hello World!“. Pro účely tohoto seriálu bude vhodnější naši první aplikaci pojmenovat stejně jako název této kapitolky, tedy: „Hello Map!“. Úkolem bude prosté vložení mapy do obsahu našich stránek se zaměřením výchozí lokace například na naše bydliště nebo oblíbené místo.

Než se do toho pustíme, je třeba vyřešit poslední drobný problém. Zejména pro kontrolu počtu zobrazení je nutné nechat si vygenerovat unikátní klíč API_KEY. Tento klíč později použijeme jako součást odkazu, přes který budeme mapu do stránek vkládat. Klíč lze vygenerovat jednoduchým procesem na příslušné stránce: https://developers.google.com/…/get-api-key. Zde je nutné využít přihlášení na Váš Google účet. Vygenerovaný klíč bude svázán s konkrétním projektem na Vašem účtu. Můžete ho také svázat s konkrétní webovou stránkou, která bude službu využívat. To je zejména bezpečnostní opatření a provedete ho vyplněním do kolonky „*Accept requests from these HTTP referrers (web sites)*“. Výsledek vypadá například takto (samozřejmě Vy ho uvidíte bez zatmavených znaků):

API KEY - Google API
Pozn.: Pokud si chceme vše pouze vyzkoušet lze použít například „Try it yourself“ na W3schools: http://www.w3schools.com/…ps_basic.asp

Nyní už nic nebrání tomu, abychom vložili mapové pole do našich stránek. Vytvoříme nebo máme vytvořenou základní strukturu HTML stránky (doporučuji použít doctype HTML5 standardu). V těle stránky vytvoříme oddíl pro mapu pomocí tagu <div> a nastavíme mu příslušné id. Oddíl zatím nebude mít žádný předem definovaný obsah, pouze si vytváříme místo o kterém, později prohlásíme: „Sem načti mapu.“

<div id="map"></div>

Mapě můžeme nastavit konkrétní podobu pomocí kaskádových stylů například následovně:

<style type="text/css">
    #map {  width:500px;
        height:380px; }
</style>

Dále do stránky vložíme odkaz na externí skript, který obsahuje API pro JS. Místo API_KEY uveďte Váš vygenerovaný klíč.

<script async defer
src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initMap">
</script>
Pozn.: U vkládání skriptů záleží na pořadí, proto se ujistěte, že reference na JS API bude uvedena jako první před vlastní inicializací, nebo ji načtěte asynchronně pomocí atributu async.

Nakonec je třeba pomocí skriptu mapu inicializovat. K tomu slouží kód uvedený níže:

var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 50.047871, lng: 15.770581},
    zoom: 16
  });
}

Pokud vám není blízká práce s objekty v JavaScriptu, nevěšte hlavu. Pro účely tohoto seriálu postačí vědět, že funkce (konstruktor) Map() třídy Map očekává jako argumenty jednak oddíl, který bude mapové pole obsahovat (zde předán pomocí getElementById()) a inicializační parametry mapy (zde předané jako objekt v podobě seznamu parametrů). V našem příkladu jsou povinné pouze dva a to nastavení místa, kam bude mapa vycentrována a úrovně přiblížení.

Lokaci, kam bude mapa vycentrována, nastavíme pomocí atributu center, což je objekt typu souřadnice. Pomocí atributu lat (z angl. latitude) nastavujeme zeměpisnou šířku a pomocí lng (z angl. longitude) zeměpisnou délku. V tomto případě jsou údaje v desetinných stupních. Způsobů jak předat parametr vycentrování mapy je více a principiálně se v podstatě neliší. Tento způsob je uveden přímo na stránkách s pokyny od Googlu. Úroveň přiblížení je poměrně intuitivní. Nastavuje se pomocí atributu zoom. Větší číslo znamená větší přiblížení neboli mapu většího měřítka.

Výsledek může vypadat následovně:

Prvni mapa - Google API

A to je pro tentokrát vše. Možností, jak výsledek přizpůsobit je velká řada a Google Maps API je celkem bohaté. Příště se blíže podíváme na možnosti základního nastavení mapy, souřadnic a typů mapy.

A pokud v textu marně hledáte zmiňované „Hello map!“ můžete si je přidat do těla funkce initMap() třeba takto:

function initMap () {
alert("Hello Map!");
…
}

A to už je opravdu vše :-)


 

Všechny články v sekci
Google API
Článek pro vás napsal Miroslav Pásler
Avatar
Uživatelské hodnocení:
7 hlasů
Autor vyučuje programování a webové technologie na SŠIS Dvůr Králové. Současně vyučuje Geografické informační systémy na Univerzitě v Pardubicích, kde studuje doktorské studium. Autor se věnuje tvorbě webu, GIS, dálkovému průzkumu Země a umělé inteligenci
Aktivity