Vývoj webové aplikaci pracující s GPS daty rubrika: Programování: JavaScript

2 Johnczek1
položil/-a 14.10.2017

Zdravím, dostal jsem za úkol vytvořil aplikaci, která pracuje s GPS daty uloženými v databázi. Jedná se o aplikaci pro správu tras (které člověk ušel nebo ujel). Takže celá aplikace bude nějaká interaktivní mapa na pozadí (pravděpodobně google maps) kde člověk "najede" na nějaké místo, zobrazí se mu barevně daná trasa kterou prošel a po kliknutí na ni se vypíší nějaké informace (jak dlouho to trvalo, jaká byla nadmořská výška atp.) Podobných projektů existuje už několik. Například Strava.com

Tento dotaz je směřován spíše lidem, kteří se už s podobným problémem někdy setkali, názory od vývojářů kteří k tématu mají co říct také neopovrhnu :)

Už jsem se trochu díval na danou problematiku a došel jsem k následujícímu:

  • Pro uložení dat v databázi bych využil PostgreSQL, je to knihovna která se jmenuje PostGIS (nebo něco takového). Za pomocí pokročilejších dotazů lze vypočítat přesnou GPS polohu bodu, vzdálenost dvou bodů atp.
  • Pro Back-End část bych asi volil PHP framework Laravel, má údajně dobrou podporu pro Postgre. (Tento framework by se primárně používal pro nějaké přihlášení a "neinteraktivní části", pro vše ostatní nějaký Javascript který bude tahat data ze serveru, viz níže)
  • Jako javascriptový framework který bude de facto "tím hlavním" na aplikaci by mohl být Angular (zajistil by to, že když uživatel najede na mapě na určitý bod tak se stáhnou trasy v okolí)- v tomto bodě upozorňuji že jsem nikdy nepracoval s žádným pokročilejším JS (skončil jsem u jQuery), plus REST. O nějakém renderování na serveru bych asi ani neuvažoval
  • Pak nějaký šablonovací systém (který se asi bude vázat k danému PHP frameworku) + bootstrap
  • Pro "podklad", mapu, asi Google maps, ty jsou údajně asi "nejhezčí" a dobře se s nimi pracuje.

K tomuto závěru jsem zatím došel. Takže pokud se zde najde někdo, kdo se v dané problematice již pohyboval- využili byste těchto technologií? Nebo byste volili něco jinak?
Děkuji moc za případné odpovědi a pomoc.

odkaz Vyřešeno
5 podhy
odpověděl/-a 16.10.2017
 
upravil/-a 16.10.2017

Ahoj,
dělám aktuálně na řekněme podobném projektu, takže mé zkušenosti:

  • PostGIS - nejlepší možnost a to obecně platí o postgresu :-)
  • backend je úplně jedno. Udělej ho v tom v čem se ti dělá dobře a efektivně. Podpora postgresu v PHP je stejná jako u ostatních mainstreamových relačních DB - od toho máme taky SQL, že + musí existovat driver
  • já pro frontend zvolil React. Nemůžu říct, že to byla špatná volba, ale dle mého názoru než se s tím naučíš efektivně pracovat tak to sebere několik týdnů a uděláš spoustu omylů a hlavně pořád budeš hledat nový knihovny aby si vyřešil pokaždý novou challenge. U angularu seš podle mě víc vedenej za ručičku
  • šablonovací systém dle mého názoru nebudeš potřebovat, když na backendu tvoříš jen API a xicht, kterej uvidí uživatel vytvoří Angular / React
  • jako knihovnu pro práci s mapama bych asi dneska zvolil OpenLayers. Já začal na Leafletu (podkladové mapy od OSM) a aktuálně z něj nejsem moc nadšenej a na přepis je už pozdě :-)
  • Google Maps, Mapbox, atd. tam se pořádně podívej na licencování

Komentáře

  • igieon : Chcel bybsom sa spytat co sa ti nepaci na leflete. Teda aspon ja som nemal problemy.ale riwsil som iba jednoduché veci. 20.10.2017
  • podhy : Primárně mi vadí to, že se tam "nedá" pracovat s vrstvama a jejich z-indexama. Já v aplikaci potřebuju totiž pracovat s poměrně velkým množstvím polygonů, které jsou různě seskupené. Řešit se to tam dá jedině pomocí Pane, ale to nevytváří skupiny v rámci SVG, ale nové HTML DOM prvky a v nich nová SVG a hlavně to není určený na takovou věc, protože by se správně měly použit Layers, ale ty zase neumí z-index :-) + se mi i něco nevyhovovalo na odchytávání mouse events 20.10.2017

Pro zobrazení všech 6 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.