"Načítam..."

Google Map API

Mapa pokrytia pomocou Google Map API

Obyčajný pracovný deň. Zrazu požiadavka zhora na novú súčasť nášho informačného systému. Cieľom bolo vytvoriť mapu pokrytia signálu našich vysielačov. “Jednoduchá vec,” povedal som si na začiatku. Keď som však nad úlohou začal premýšlať, až taká jednoduchá zas nebola. Výsledok musel obsahovať ako reálne smerovanie antén, tak aj konkrétne geografické dáta, napríklad nadmorskú výšku či členitosť kopcov.

Výber správneho API

Úlohou číslo 1 bolo nájsť správny framework/API na zobrazenie máp a následnú prácu s nimi. Taktiež som musel nájsť API aj na geografické dáta. Rozhodol som sa pre Google Map API a Google Elevation API, keďže mám s nimi skvelé skúsenosti. Presvedčila ma aj ich obsiahla dokumentácia a veľká komunita.

Prvý prototyp

Začal som s Map API - na mape bolo potrebné zobraziť ikonu vysielača a vektor vyžarovania antény. Jednoduchá úloha zvládnutá za pár minút. Ďalej som potreboval vypočítať dosah signálu vzhľadom na výšku kopcov stojacich v ceste. Tak som vzal vyžarovací úkol antény, rozložil ho na 5-stupňové koridory a každému koridoru v rozostupe 5 metrov som vypočítal výšku kopca a to, či je na konkrétnom mieste signál. V tom som však narazil na limit Google Elevation API, a to v počte dotazov na API. Potreboval som teda medzikrok - všetky dáta som načítal vopred a ukladal ich lokálne. Nevýhodou síce bolo, že to trochu trvalo ako aj chýbajúca možnosť interaktívneho natáčania koridoru, no napokon som to zvládol.

Správne riešenie

Google som použil aj na vyhľadávanie - potreboval som nájsť API, ktoré ponúka možnosť načítať viacero výškových profilov v jedinom dotaze tak, aby tých dotazov mohlo byť viac. Ak by som teda mal 60-stupňový koridor o dĺžke 1500 metrov, pri 5-stupňových koridoroch s 5 metrovým rozostupom by išlo o 3600 dotazov na API k získaniu nadmorskej výšky. Pokiaľ chceme túto činnosť ešte vykonávať interaktívne, je potrebné to urobiť každú sekundu.

Nepodarilo sa mi nájsť žiadne vhodné API. Náhodou som sa však dopracoval k stránke, ktorá tieto údaje ponúkala k stiahnuti, a to úplne zadarmo. Stačilo iba stiahnuť súbory, v ktorých boli uložené výškové dáta danej krajiny v binárnej forme. Vytvoril som si na to knižnicu, ktorú som dal Open-source.

Finálne riešenie

Mal som teda k dispozícii surové dáta nadmorských výšok celej krajiny, ktoré som mohol rýchlo a donekonečna prehľadávať podľa mojich potrieb. Aplikáciu som následne dokončil, a to aj s interaktivitou.

Zdieľaj: