SOBI2 – mapa Google, która zbiera lokalizacje wszystkich wpisów ( XML Eksport component)

//, Webdesign - html / php / js/SOBI2 – mapa Google, która zbiera lokalizacje wszystkich wpisów ( XML Eksport component)

SOBI2 – mapa Google, która zbiera lokalizacje wszystkich wpisów ( XML Eksport component)

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 )

com_smap

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 )

mapa Google Maps dla Sobi2

Skomentuj wpis

komentarzy

About the Author:

4 komentarze

  1. Monex 23-12-2010 at 23:28

    Pozostaje wi c edycja pliku Makefile i wyci cie tego prze cznika albo co polecam dopisanie odpowiedniego enable-x do linii konfiguracyjnej. .Upewnij si tylko czy w pliku etc rc.conf widnieje wpis nginx enable YES.

  2. Kris 24-03-2011 at 15:23

    ciekawy pomysł na mapy w sobi2, szczególnie przydatny dla tych, którzy nie chcą wydawać kilkadziesiąt EUR na płatne moduły do wyświetlania pozycji ogłoszeń sobi2 na liście wpisów. Rozwiązanie to ma też dodatkową zaletę – tę mapkę można umieścić gdziekolwiek, nie tyko w v-card view dla sobi2. Dobra robota.

  3. knopper 10-03-2012 at 17:51

    Fajnie opisane , fajnie zrobione 😉 dziękuję .
    Jednak coś do końca nie działa – xml zasysa dane ,ale nie widać markerów?
    Gdzie jest problem ?

  4. pyby 14-03-2012 at 20:09

    a spróbuj przez Firefoxa i daj znać czy się udało. Jeśli tak, to miałem podobny problem w IE, niestety nie znam sposobu obejścia. Błąd tkwi prawdopodobnie w strukturze pliku XML.

Leave A Comment