GOOGLE MAPS – UTOVAR I ISTOVAR
================================

Šta je dodano
-------------

1. U evidenciji IZVOZI I UVOZI dvokliknite red i u prozoru podataka prevoza
   izaberite firmu, adresu ili grad preko Google Maps pretrage za utovar i/ili
   istovar.

2. Izbor se čuva uz konkretan zapis izvoza ili uvoza. Postojeća polja
   "Mjesto / adresa utovara" i "Mjesto / adresa istovara" ostaju ručni opis
   koji se i dalje prenosi na naloge i fakture.

3. Dodana je nova stranica:
      Mapa utovara i istovara
   Ona prikazuje zeleni marker za utovar i crveni marker za istovar. Moguće je
   filtriranje po datumu i po lokacijama: svi markeri, samo utovari ili samo
   istovari. Pri prvom otvaranju nema ravnih linija između lokacija.

4. Ako je na istoj Google Maps lokaciji više utovara ili istovara, vidi se
   jedan marker s brojem naloga. Klik na njega ponudi samo naloge za tu tačnu
   lokaciju, tako da se dva utovara iste firme ne preklapaju niti miješaju s
   drugim lokacijama istog komitenta.

5. Nakon izbora konkretnog naloga karta računa i prikaže samo njegovu cestovnu
   rutu (vozačka ruta preko cestovne mreže, ne prava linija). U opisu markera
   vidi se proračunata cestovna udaljenost i procijenjeno vrijeme. Dugme
   "Otvori rutu u Google Mapsu" otvara istu vozačku rutu u Google Mapsu.
   Dugme "Sakrij rutu" iznad karte briše prikaz rute.

6. U prozoru markera kliknite "Otvori kompletan pregled" da se u novom tabu
   otvori samo-za-čitanje pregled konkretnog
   izvoza ili uvoza. Pregled sadrži podatke unesene u prikaz.php, bez dugmadi
   za izmjenu ili snimanje.

Google Maps ključ – obavezna postavka
-------------------------------------

U vanjski komercijala-config.php (preporučeno) dodajte:

    'google_maps_api_key' => 'VAŠ_GOOGLE_MAPS_BROWSER_KLJUC',

Alternativno postavite varijablu okruženja GOOGLE_MAPS_API_KEY.

U Google Cloud konzoli za taj ključ:

- uključite Maps JavaScript API;
- uključite Places API (New);
- uključite Routes API;
- postavite Application restriction na Websites / HTTP referrers;
- dozvolite samo tačne HTTPS domene aplikacije, na primjer:
      https://vasa-domena.ba/*
      https://www.vasa-domena.ba/*
- postavite API restriction samo na Maps JavaScript API, Places API (New) i
  Routes API;
- uključite budžetska i quota upozorenja.

Ne unosite server/IP-ograničeni ključ u ovu aplikaciju. Browser ključ je
vidljiv pregledniku i zato mora biti ograničen po domenu i API-jima.

Dozvole
-------

Kao administrator otvorite "Dozvole (Admin)" jednom nakon postavljanja
fajlova. Nova stavka "Izvozi i uvozi – Mapa utovara i istovara" će se pojaviti
u listi dozvola; dodijelite je korisnicima ili funkcijama kojima je potrebna.
Pregled otvoren sa markera nasljeđuje istu dozvolu za mapu, pa nije potrebno
dodavati novu dozvolu korisnicima koji već mogu otvoriti kartu.

Baza
----

PHP kod automatski dodaje potrebna polja pri prvom korištenju modula. Ako
migraciju želite izvršiti ručno prije postavljanja novih fajlova, za prvu
Google Maps instalaciju pokrenite:

    sql/transport_google_maps.sql

Ako su Google Maps Place ID kolone već ranije dodane, a aplikacija nema pravo
da sama doda indekse za brzi izbor više naloga na istoj lokaciji, samo jednom
pokrenite:

    sql/transport_google_maps_lokacije.sql

Google Places i podaci lokacije
-------------------------------

Trajno se čuva Google Place ID, što je dozvoljeno Google Places pravilima.
Naziv firme, adresa i koordinate se svježe učitavaju iz Google Mapsa kada se
otvori detalj ili karta. Kada korisnik izabere nalog, cestovna ruta se također
računa samo za taj trenutni prikaz i ne čuva se u bazi. Time su podaci ažurni i
ne čuva se zabranjeni trajni keš Google Places sadržaja. Ručni opis u postojećim
poljima ostaje vaš podatak i može sadržavati poslovnu napomenu potrebnu za nalog
ili fakturu.

Napomena o autocestama
----------------------

Ruta koristi Googleovu vozačku opciju (DRIVING), pa prati stvarnu cestovnu
mrežu i dopušta autoceste. Google ne omogućava pravilo da se autocesta mora
koristiti u svakoj situaciji; bira najprikladniju vozačku rutu prema dostupnim
cestama.

Karta namjerno ne pokušava geokodirati stare ručno unesene tekstove. Na karti
se prikazuju samo lokacije koje su izabrane preko novog Google Maps polja.
