25. 04. 2018
Na podzim jsme začali pracovat na vlastní mapové komponentě pro Android a iOS. Teď vám prozradíme, proč jsme se do křížku s mapami vlastně pustili, kam jsme to zatím dotáhli a kam to celé směřuje.
Google / Apple mapy a ti další
V mnoha aplikacích potřebuje použít mapovou komponentu. Dost často stačí nativní mapová komponenta dané platformy, tedy Google mapy a Apple mapy. Jakmile je ale potřeba offline mapa, vlastní skin mapy, nebo jiné podobné pokročilejší požadavky na mapový engine tyto komponenty už nemají co nabídnout.
Hledali jsme tedy komponentu, která by uměla fungovat offline a přitom vykreslovat vektorové podklady. Vektory nepotřebujeme ani tak kvůli rychlosti vykreslování, ale hlavně proto, že takto uložené mapové komponenty mají o řád menší nároky na datové úložiště. Hledali jsme také komponentu, která by se nesekala a měla hezké API. A taková existuje, vyrobili ji kluci z Mapboxu a docela se jim povedla. Jenže hodně ji limituje pricing model, který na ni Mapbox nasadil. Pokud chceme stáhnout větší oblasti pro offline použití, stává se drahým špásem.
Naše exkurze do kartografie
Kolega David hledal inspiraci pro bakalářku a ještě ke všemu si chtěl zkusit práci s OpenGL. Takže proč si nevyzkoušet, jak složité je udělat si takovou vlastní mapovou komponentu.
Co jsme si předsevzali dokázat:
- Podporovat online i offline mód.
- Vše kreslit z vektorů.
- Snadné přepínání zdroje dat (zatím OSM v různých podobách).
- Umožnit obarvit si mapu.
- Rotaci mapy podle kompasu.
- Plynulost pohybu i zoomu.
Co si budeme namlouvat, nebyla to snadná cesta, ale zatím to vypadá, že všechno výše uvedené bude možné. Už umíme číst online data, která si buď budete číst z nějakého free zdroje, nebo si uděláte svoje balíčky nahrajete si je třeba na Amazon storage a tam si je budete za pár dolarů měsíčně hostovat. Případně si uděláte offline balíčky a umožníte uživatelům si je stáhnout do aplikace a fungovat bez internetu.
Už nám to hezky vykresluje a to i celkem plynule, běžíme na Androidu i iOS, obarvení mapy už taky není problém. Teď ladíme možnost vykreslovat vrstvy nad mapou a další finesy.
Pořádné mapky do každé apky
Naším cílem samozřejmě není nechat si to celé pro sebe. Dejte vědět, pokud byste se chtěli zapojit do alpha testování. V horizontu cca 4 – 6 měsíců snad bude komponenta k dispozici jako knihovna. Třeba mezitím najdeme i nějaké hezké jméno 🙂 Držte nám palce!