Ufff po ciężkiej pracy po nocy i paru piwach udało się stworzyć mapkę na stronie www.klubfitness.eu, która zaczytuje markery lokalizacji z pliku XML. Samo utworzenie mapy, która byłaby działająca zajęło ok. 2h, ale to głównie przez to, że to moja pierwsza przygoda z programowaniem w Google Maps Api. Okazuje się, że api pozwala na wczytanie markerów z pliku XML.
CO DAJE NAM KOMPONENT COM_SMAP?
Komponent COM_SMAP generuje plik XML który zawiera 4 dane:
- NAZWA WPISU,
- ID WPISU,
- SZEROKOŚĆ GEOGRAFICZNA i
- DŁUGOŚĆ GEOGRAFICZNA.
Jeśli mamy już odpowiednio spreparowanego XML’a jesteśmy w stanie zaimportować opisane w nim „markery” do mapy Google i wyświetlić na stronie. Oczywiście logicznym jest, że wpisy w Twoim katalogu Sobi2 muszą zawierać aktywne pola 'longitude’ i 'lattitude’ (poczytaj więcej np. tutaj ).
Pierwszy plik XML
przygotowałem ręcznie 🙂 zajęło mi to około godziny, przy czym cały czas myślałem jak „wyssać” te dane z bazy i wyeksportować do pliku XML.
Po dłuższej walce udało się. Stworzyłem plik PHP który zaczytywał dane z bazy i eksportował do XML’a.
Idąc dalej przygotowałem komponent do Joomla. Ma on jedną drobną wadę – zawsze pobiera dł. geogr i szerokosć z wartością FIELDID = 14 i 15 i aby to zmienić, musimy ręcznie grzebnąć w pliku PHP. W Twoim przypadku wartość ta może być inna (zależy kiedy utworzyłeś własne pola longitude i lattidude w Sobi2).
INSTALACJA KOMPONENTU, WYGENEROWANIE XML’A Z BAZY SOBI2
Może się okazać, że komponent zadziała od razu bez konieczności zmian.
Gdyby była jednak potrzeba wskazania innych wartości ID dla pól 'lat’ i 'lon’ robisz tak:
1. wchodzisz do swojej bazy przez PhpMyAdmin
2. znajdujesz tabelę _sobi2_fields_data
3. szukasz jakie FIELDID mają wartości długości geogr. i szerokości (u mnie jest to 14 i 15).
4. Wskakujemy po zainstalowaniu komponentu w COMPONENTS/COM_SMAP/smap.php i w okol. linijki 12 edytujemy wartości FIELDID na własne.
UWAGA! Pamiętaj aby dodać swój klucz API w pliku. Tutaj uzyskasz klucz API dla Twojej domeny: http://www.google.com/apis/maps/signup.html
Aby wygenerować XML wchodzimy w menu KOMPONENTY –> SMAP –> i klikamy w link do generacji XML’a. Ma on zazwyczaj postać twojadomena.pl/index.php?option=com_smap.
OK. Załóżmy,że XML dla Google Maps został wygenerowany i dostaliśmy pozytywną informację o tym fakcie. Kolejnym krokiem będzie stworzenie pliku PHP, który zaczytywałby te dane, parsował i dodawał odpowiednie markery z linkami do wpisów.
Mapa Google Maps zaczytująca markery z pliku XML
Aby nauczyć się prostego programowania w GMaps polecam stronę www.gmapsapi.com – świetne przykłady, napisane stosunkowo łatwym językiem.
Nie będę rozpisywał się jak przygotować taki plik, możesz go pobrać na samym dole tego artykułu.
Ważne aby znajdował się w głównym katalogu domeny np. www.mojadomena.pl/mapa.php
WYŚWIETLENIE PLIKU PHP MAPY JAKO „TREŚĆ” W JOOMLI
Aby pokazać go w joomli możemy skorzystać z dodatku RD ADD PHP : pobierz rd add php
Nie zapomnij opublikować dodatku (ROZSZERZENIA –> DODATKI –> RD ADD PHP –> publikuj).
Następnie wchodzimy np. w edycję frontu SOBI2 (ustawienia ogólne–>MAINPAGE) i piszemy:
{rdaddphp file=mapa.php} .
W tym momencie powinieneś zobaczyć mapę Google ze skolekcjonowanymi lokalizacjami wpisów w SOBI2.
Możesz też dodać ten kod w dowolnym artykule i po wejściu w niego powinieneś zobaczyć załadowany plik PHP w treści.
————————————————————-
PLIKI DO POBRANIA:
komponent SMAP do generowania pliku XML dla Mapy Google (instalujemy poprzez instalator joomla)
Uwaga! Do instalacji koniecznie należy włączyć Spuściznę (LEGACY) . ROZSZERZENIA –> DODATKI –> SYSTEM-LEGACY )
Mapa.php do prezentowania geolokalizacji wszystkich wpisów z Sobi2
(mapę rozpakowujemy i wrzucamy do głównego katalogu domeny, i wywołujemy np. domena.pl/mapa.php )