Browsed by
Archiv pro štítek: PHP

Přednáška o Symfony na ZČU

Přednáška o Symfony na ZČU

Rádi pomáháme komunitě kolem PHP a Symfony. Vůbec jsme neváhali, když nás oslovil Martin Dostál ze ZČU – jestli bychom nepředstavili Symfony v rámci předmětu KIV/WEB. Trochu mě znervóznila informace, že si tuto nepovinnou přednášku zapsalo 80 studentů – adventní čas si ale vyžádal své a tak jsme byli nakonec rádi za 8 účastníků :-) Mírná nervozita zůstala, když v první řadě zasedl guru všech českých programátorů – Pavel Herout.

Jednalo se o klasickou přednášku, tedy bez společného programování. I tak doufám, že jsme těm 8 statečným Symfony trochu přiblížili a provedli je prvními krůčky. Osnovu přednášky jsme na základě našich zkušeností připravili z těchto témat:

  • Co je to framework (a Sf obzvlášť)?
  • MVC pattern
  • Od Request k Response, Routing
  • Šablony, TWIG
  • Formuláře, validace
  • Moderní aplikace
  • Profiler

Zajímáte se také o Symfony a chtěli byste s pomoci s prvními krůčky, nebo jej již používáte a měli byste chuť pokecat? Napište nám – určitě společně něco vymyslíme :-)

Fotografie z přednášky

Naučte se s námi React nebo Symfony

Naučte se s námi React nebo Symfony

Připravujeme krásný projekt, který bude startovat ve více zemích EU a má potenciál ovlivnit určitý trh obdobně, jako bezrealitky.cz ovlivnily realitní trh. Tentokrát v celoevropském měřítku.

Technicky se jedná o frontend v Reactu a backend v Symfony. Zdatní frontend developeři, kteří umí, nebo mají chuť naučit se React by byli velmi vítané posily týmu. Obdobná nabídka platí i pro PHP vývojáře, kteří buďto mají zkušenost se Symfony, nebo mají chuť se jej naučit pod vedením zkušených borců :-)

Více se o nás můžete dozvědět na stránce o nás, co jsme již dokázali na přehledu našich projektů a koho hledáme a co nabízíme na stránce kariéry v iD-SIGN.

Ke kontaktu a zvídavým otázkám můžete využít jak kontaktní formulář, tak i email info@id-sign.com. Rádi vás přivítáme! :-)

Výpočet vzdálenosti z GPS souřadnic

Výpočet vzdálenosti z GPS souřadnic

Při práci se souřadnicemi často narazíte na úkol určit vzdálenost dvou míst. Dlouhou dobu jsme pro tento případ používali jednoduchý vzoreček okořeněný magickou konstantou:

dist = sqrt( (lat1 - lat2) ^ 2  + (lng1 - lng2) ^ 2 ) * 0.012

kde lat1, lat2, lng1, lng2 jsou souřadnice bodů jejichž vzdálenost máme určit a 0.012 je magická konstanta, která v našich zeměpisných šířkách upravuje výsledek tak, aby udával vzdálenost v kilometrech.

Bohužel předchozí věta není úplně pravdivá: výsledek se tu více, tu méně skutečné vzdálenosti pouze blíží. To podle toho, kterým směrem jsou od sebe body položeny a v jaké se pohybujeme zeměpisné šířce. Když pak přišla potřeba výpočet zpřesnit, museli jsme používaný vztah změnit.

Problém se vztahem je asi každému zřejmý. Bohužel nežijeme na placce, ale na kouli (zhruba) a tak nevystačíme s rovinnou geometrií a Pythagorovo větou, ale musíme počítat s geometrií sférickou. Nepotřebujeme dostat přímou vzdálenost mezi body (pokud nejste krtek a nepočítáte tunel). Zajímá nás vzdálenost mezi body po obvodu kružnice, jejíž poloměr je dán poloměrem Země.

Pro tento případ lze odvodit tzv. haversine vzorec, který lze s nevelkou chybou zjednodušit na následující vztah:

dist = acos (sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lng1 - lng2) ) * 6371

kde lat1, lat2, lng1, lng2 jsou souřadnice bodů a 6371 poloměr země v km, výsledkem je vzdálenost v kilometrech. Pozor: předpokládáme zde výpočet ve stupních. Pro výpočet v radiánech je třeba konstantu poloměru Země náležitě upravit (na 6371 / 360 * 2 * Pi = 111.19).

Protože souřadnice udáváme nejčastěji ve stupních, je nutné i tyto nejprve převést na radiány. Výsledný kód funkce pro výpočet vzdálenosti v PHP je pak následující:


function distance($lat1, $lng1, $lat2, $lng2) {
  $theta = $lng1 - $lng2;
  $dist = acos(
      sin(deg2rad($lat1)) * sin(deg2rad($lat2)) 
      + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta))
    );
  $kms = $dist * 111.19;
  return $kms;
}

Popis dalších metod výpočtů týkajících se vzdáleností a souřadnic v angličtině je k nahlédnutí zde http://www.movable-type.co.uk/scripts/latlong.html.