VgtGoogleMap
Klasa ma na celu ułatwienie tworzenia interaktywnych map GoogleMaps bez potrzeby znajomości JavaScript'u. Dokumentacja zawiera komplet informacji na temat klasy, poniżej kilka przykładów jej uzycia:
Jak zacząć
na początek należy otworzyć obiekt klasy VgtGoogleMap z parametrem zawierającym klucz, który można uzyskać tutaj. W poniższym przykładzie klucz został wcześniej przypisany do stałej GMAP_KEY.
<?php
require DIR_CLASS.'VgtGoogleMap.php';
$oMapa = new VgtGoogleMap(GMAP_KEY);
?>
Pierwsza pusta mapa
Każdą kolejno tworzoną mapę należy rozpoczynać metodą nowaMapa() podając kolejno ID elementu, w którym ma być umieszczona mapa, szerokość geograficzną, długość geograficzną i poziom przybliżenia mapy.
<?php
$oMapa->nowaMapa('mapa_pusta', 53.596, 19.569, 13);
?>
Mapa zawierająca markery
Do wstawiania markerów na mapie służy metoda dodajMarker():
<?php
$oMapa->nowaMapa('mapa_marker', 53.596, 19.569, 13);
$oMapa->dodajMarker(53.596, 19.569);
$oMapa->dodajMarker(53.596 - 0.01, 19.569 + 0.01);
?>
Markery z opisami
Do każdego umieszczonego na mapie markera można dodać opis, który pojawi się po kliknięciu na dany marker. Służy do tego metoda markerDodajOpis():
<?php
$oMapa->nowaMapa('mapa_marker_opis', 53.596, 19.569, 13);
$oMapa->dodajMarker(53.596, 19.569);
$oMapa->markerDodajOpis('opis pierwszego markera');
$oMapa->dodajMarker(53.596 - 0.01, 19.569 + 0.01);
$oMapa->markerDodajOpis('opis <u>drugiego</u> markera');
?>
Opisy markerów w zakładkach
Każdy marker może mieć opis w kilku zakładkach. Uzyskuje się je za pomocą metody markerZakladkaDodajOpis()
<?php
$oMapa->nowaMapa('mapa_marker_opis_zakladki', 53.596, 19.569, 13);
$oMapa->dodajMarker(53.596, 19.569);
$oMapa->markerZakladkaDodajOpis('Info', 'pierwszy marker');
$oMapa->markerZakladkaDodajOpis('Szczegóły', 'centrum miasta');
$oMapa->dodajMarker(53.596 - 0.01, 19.569 + 0.01);
$oMapa->markerZakladkaDodajOpis('Info', 'drugi marker');
$oMapa->markerZakladkaDodajOpis('Szczegóły', 'ulica Usługowa');
?>
Zmiana ikony markera
Możliwość podmiany domyślnych ikon markerów daje metoda dodajIkone(), która zwraca identyfikator tworzonej ikony. Identyfikator ten należy następnie użyć podczas tworzenia markera:
<?php
$oMapa->nowaMapa('mapa_marker_ikona', 53.596, 19.569, 13);
$iIdIkona = $oMapa->dodajIkone('/example-marker.png', '/example-marker-shadow.png', 92, 70, 92, 70, 15, 69, 14, 31);
$oMapa->dodajMarker(53.596, 19.569, $iIdIkona);
?>
Zewnętrzne linki do markerów
Efekt wyświetlenia opisu markera można uzyskać nie tylko przez kliknięcie na danym markerze, ale także przez kliknięcie na dowolnym elementcie strony. Kod, który należy użyć w atrybucie onclick dowolnego elementu strony, zwraca metoda akcjaWyswietlOpis(), której należy przekazać dwa parametry: numer markera (markery dla każdej mapy są numerowane od zera), oraz identyfikator mapy. Od ver. 1.4 możliwe jest uzyskanie tego samego rezultatu poprzez przekazanie tylko ID markera, ktory jest zwracany przez metodę dodajMarker(). W ten sposób w poniższym przykładzie uzyskane zostały zmienne $sIdMarker1 i $sIdMarker2:
<?php
echo '<span onclick="'.$oMapa->akcjaWyswietlOpis($sIdMarker2).'">opis markera</span>';
echo '<span onclick="'.$oMapa->akcjaWyswietlOpis($sIdMarker1).'">opis markera z poprzedniej mapy</span>';
?>
Automatyczne wyświetlenie opisu
Aby opis danego markera pojawił się od razu po załadowaniu strony bez potrzeby klikania, należy po stworzeniu danego markera wywołać dodatkowo metodę wyswietlOpis():
<?php
$oMapa->nowaMapa('mapa_marker', 53.596, 19.569, 13);
$oMapa->dodajMarker(53.596, 19.569);
$oMapa->markerDodajOpis('opis pierwszego markera');
$oMapa->dodajMarker(53.596 - 0.01, 19.569 + 0.01);
$oMapa->markerDodajOpis('opis <u>drugiego</u> markera');
$oMapa->wyswietlOpis();
?>
Modyfikacja interface'u mapy
Na mapie różne elementy interface'u mogą być włączane lub wyłączane. Służą do tego metody z grupy ustawień:
<?php
$oMapa->nowaMapa('interface', 53.596, 19.569, 13);
$oMapa->ustawieniaSetTypMapy(false);
$oMapa->ustawieniaSetDuzeKontrolki(false);
$oMapa->ustawieniaSetMaleKontrolki(true);
$oMapa->ustawieniaSetMapaMiniatura(true);
?>
Rysowanie linii
Do rysowania linii na mapie służą dwie metody: linia(), za pomocą której definiuje się nową linię, oraz liniaDodajPunkt(), za pomocą której dodaje się kolejne punkty do aktualnie tworzonej linii:
<?php
$oMapa->nowaMapa('mapa_linie', 53.596, 19.569, 13);
$oMapa->linia('FF0000', 5);
$oMapa->liniaDodajPunkt(53.596 - 0.01, 19.569);
$oMapa->liniaDodajPunkt(53.596, 19.569 + 0.01);
$oMapa->liniaDodajPunkt(53.596 + 0.01, 19.569);
$oMapa->linia('0000FF', 5);
$oMapa->liniaDodajPunkt(53.596 + 0.01, 19.569);
$oMapa->liniaDodajPunkt(53.596, 19.569 - 0.01);
$oMapa->liniaDodajPunkt(53.596 - 0.01, 19.569);
?>
Obsługa zdarzeń
Na mapach możliwa jest obsługa dodatkowych zdarzeń takich jak zaznaczenie miejsca, zmiana przybliżenia mapy i zmiana typu mapy za pomocą własnych funkcji JavaScript. Służą do tego metody: obslugaKlikniecia(), obslugaZmianyZooma() i obslugaZmianyTypuMapy(). W każdej z tych metod, jako parametr, podaje się nazwę funkcji JavaScript, która ma zostać wywołana po wystąpieniu danego zdarzenia. Funkcje zdefiniowane dla poniższej mapy można zobaczyć tutaj.
<?php
$oMapa->nowaMapa('mapa_zdarzenia', 53.596, 19.569, 13);
$oMapa->obslugaKlikniecia('mapaClick');
$oMapa->obslugaZmianyZooma('mapaZoom');
$oMapa->obslugaZmianyTypuMapy('mapaTyp');
?>
Nie zaznaczono miejsca.
Zoom mapy ustawiony na 13.
Typ mapy ustawiony na 'Map'.