Sprawdź najnowsze wpisy:
[Google.Maps / jQuery] Plugin do wstawiania map Google na stronę

Obecnie na większości stron firmowych umieszcza się mapy z lokalizacją. Najczęściej używa się do tego Google Maps. Wstawienie mapy na stronę jest banalnie proste, wystarczy skopiować podany kod iframe. Problem pojawia się, gdy nie odpowiadają nam dane zawarte w chmurce, chcemy ją domyślnie ukryć lub marker znajduje się w złym miejscu.

Przygotowałem plugin jQuery – Mapsta używający google.maps.api V3, który ułatwia wstawianie map, pokazywanie i ukrywanie chmurki, wstawianie do niej kodu html i kilka dodatkowych opcji. Oczywiście wykorzystuje on pewnie 1% tego, co można zrobić z api, ale zależało mi na tym, żeby działał prosto i obsługiwał najbardziej popularne funkcje.

demo | pobierz.zip

Jak używać

Lokalizacja

Na początek musimy znać długość i szerokość geograficzną wybranej lokalizacji. Można to zrobić na wiele sposobów. Użyjemy do tego http://mapy.google.pl/ . Po znalezieniu naszego miejsce (i ew. przestawieniu markera) pobieramy link:

W linku znajdują się współrzędne wybranego punktu, których użyjemy do wstawiania naszej mapy:

Wstawianie mapy

Skopiuj plik jquery.mapsta.min.js do odpowiedniego katalogu. W kodzie strony dołącz bibliotekę jQuery (jeśli jeszcze nie używasz), google.maps.api (V3 nie wymaga już generowania klucza) oraz plugin (pamiętaj, żeby podać dobrą ścieżkę).

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.mapsta.min.js"></script>

w odpowiednim miejscu wstaw div na mapę (ja użyję id=”mapa”):

<div id="mapa"></div>

w css nadaj mu wymiary (będa to wymiary mapy) np.

#mapa { width:500px; height:400px; }

teraz już tylko wystarczy podać dane punktu i wybrać dodatkowe opcje, które Ci pasują.

Przykład prostego użycia

<script type="text/javascript">
 
	$(function(){ 
 
		$('#mapa').mapsta({
			pozycjas: 52.398727,
			pozycjad: 17.006836 
		});
 
	});
 
</script>

Mapa z markerem, tytułem markera, chmurką (po kliknięciu), widokiem z satelity i wyłączoną nawigacją:

<script type="text/javascript">
 
	$(function(){ 
 
		$('#mapa2').mapsta({
			pozycjas: 52.398727,
			pozycjad: 17.006836,
			tytul: 'Tytuł markera', 
			opis: '<h2>Słoniarnia</h2><p>Słoniarnia w Poznańskim Nowym ZOO</p>',
			nawigacja: 'nie',
			typ: 'satelita'
		});
 
	});
 
</script>

Wszystkie opcje pluginu, których możesz użyć:

pozycjas: --- szerokość geograficzna
pozycjad: ---długość geograficzna
 
zoom: --- powiększenie mapy cyfry od 1 (domyślnie 18)
nawigacja: --- tak/nie - menu nawigacyjne na mapie
typ:  --- rodzaj mapy: mapa, teren, satelita, hybryda
 
chmurka: --- otwarta/zamknieta - stan chmurki po wczytaniu mapy (domyślnie zamknięta), bez markera zawsze otwarta
opis: --- zawartość chmurki - kod html
szerokosc: --- maksymalna szerokość chmurki
 
tytul: --- tytuł markera po najechaniu (tak jak title przy linku)
marker: --- tak/nie pokazanie markera

Licencja

Możesz:

  • za darmo używać skryptu w projektach niekomercyjnych i komercyjnych (np. na stronach Twoich klientów)
  • wprowadzać dowolne zmiany w skrypcie, pamiętając o pozostawieniu danych autora

Nie możesz:

  • sprzedawać, rozdawać, ani dystrybuować tego skryptu jako osobnego produktu, jedyne legalne źródło jego pozyskania to strona Websta.pl

Przydatne linki:

Podsumowanie

Jest to pierwsza wersja pluginu Mapsta dla Google Maps Api V3. Jeśli uważasz, że pominąłem jakieś przydatne funkcje lub znalazłeś błędy – daj mi znać w komentarzach.

demo | pobierz.zip

Dodaj do:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • LinkedIn
  • Technorati
  • Wykop
  • RSS
  • Twitter
  • BLIP - Bardzo Lubię Informować Przyjaciół
  • Wrzuć to na Flakera - powiadom swoich Znajomych
  • grono.net - internetowa społeczność przyjaciół
  • Dodaj link - Linkr.pl - tylko ciekawe linki

Zapisz się na newsletter

Nienawidzę spamu tak samo jak Ty, dlatego obiecuję, że nigdy nie sprzedam, ani nie udostępnię nikomu Twojego adresu e-mail.

(W każdej chwili możesz się wypisać, klikając link na końcu każdego maila.)

Tagi: , , , , , ,


  1. tomek (Reply) niedziela 15 Sierpień , 2010

    Świetny artykuł !
    Przyda się na pewno
    Do tej pory po prostu wklejałem skopiowany link z google maps i niestety dokument nie chciał się już walidować, a tu prosze prosty plugin i wszystko śmiga jak należy.

    • Websta (Reply) niedziela 15 Sierpień , 2010

      To fakt, że dokument będzie się walidować, jako taki dodatkowy bonus ;) Jeśli jednak zleży Ci na walidacji, a w “opis” chcesz użyć html, to trzeba by odpalać plugin w zewnętrznym pliku js.
      No, ale jak ktoś dba o walidację to i zewnętrznego pliku js umie użyć bez problemu ;)

    • Przemek (Reply) wtorek 24 Maj , 2011

      Dokument będzie się walidował, ale kod nadal pozostaje napisany nieprawidłowo i niezgodnie ze standardami. To obejście, ukrycie problemu, a nie rozwiązanie go. Pan Websta niech się lepiej skupi na grafice…

      • Websta (Reply) środa 25 Maj , 2011

        Dzięki za ten konstruktywny i anonimowy komentarz. Naprawdę wiele wnosi i internet stał się dzięki Tobie lepszy. Zostawię go, żebyś mógł się ponapawać.

        Nie twierdzę, że jestem najlepszy i zjadłem wszystkie rozumy, ale…
        rady na temat ścieżki życiowej zostaw dla swoich kumpli trolli.

        Pozdrawiam.

  2. tomek (Reply) poniedziałek 16 Sierpień , 2010

    Dokładnie tak to zrobiłem w celu sprawdzenia czy się waliduje

  3. dotworker (Reply) czwartek 19 Sierpień , 2010

    Świetnie / W końcu mogę usunąć “chmurkę” która zawsze zasłaniała część mapy. Podpięcie skryptu banalnie łatwe. Więcej takiego towaru w mieście !

  4. maroon (Reply) wtorek 21 Wrzesień , 2010

    Dobra robota ! Przyda się to cudo

  5. yav (Reply) poniedziałek 22 Listopad , 2010

    Można umieścić dwa punkty na mapie ?

    • Websta (Reply) poniedziałek 22 Listopad , 2010

      Można tylko jeden.

  6. sst (Reply) czwartek 24 Marzec , 2011

    Dziękuję Ci bardzo ca tą robotę! Wykorzystałem na 2 stronach i jestem bardzo zadowolony? Może więcej będziesz pisać o Google Maps :) ?

    • Websta (Reply) piątek 25 Marzec , 2011

      Nie ma sprawy.
      W najbliższym czasie chyba nic się nie pojawi o Google Maps, ale w przyszłości… kto wie ;)
      Pozdrawiam.

  7. Anonim (Reply) wtorek 10 Maj , 2011

    Długość i szerokość można uzyskać prościej. Wchodzimy na google maps, klikamy tam gdzie chcemy prawym przyciskiem, wybieramy “co tu jest?” i współrzędne pojawiają się u góry w pasku szukania map.

    • Websta (Reply) wtorek 10 Maj , 2011

      Świetna wskazówka.
      Dzięki :)

  8. ZIBI (Reply) czwartek 7 Lipiec , 2011

    Przydatna rzecz na stronę www. Dzięki za udostępnienie. Miałbym pytanie apropo przeglądarek…W Mozilli działa mi mapa, w Explorerze nie :(. Jaka była by przyczyna?
    Mimo wszystko dzięki za artykuł…

    • Websta (Reply) czwartek 7 Lipiec , 2011

      W jakiej wersji Ci nie działa?

  9. ZIBI (Reply) czwartek 7 Lipiec , 2011

    Używam Explorer7…Na wszystkich innych działa… Więc się nie czepiam…z Explorerem zawsze są kłopoty ale może jest jakiś trik aby i tu mapa działała.
    Z góry dziękuję…bo artykuł naprawdę przydatny…fajny efekt…:)

    • Websta (Reply) czwartek 7 Lipiec , 2011

      Oczywiście z IE7 było testowane, spojrzałem właśnie na demo w nim i działa. Musi to być jakiś problem na Twojej stronie. Sprawdź jeszcze raz kod. Ew. wrzuć link zobaczę u siebie.

  10. ZIBI (Reply) piątek 8 Lipiec , 2011

    http://www.adamandmarekbud.hostoi.com
    Nie jest to zbyt profesjonalna strona ale proszę o wyrozumiałość gdyż jestem początkujący.
    Dziękuję za pomoc…:)

  11. ZIBI (Reply) piątek 8 Lipiec , 2011

    http://www.adamandmarekbud.hostoi.com/contact.php
    Konkretniej jest ta mapka tutaj zawarta…
    Pozdrawiam i jeszcze raz dziękuję

  12. ZIBI (Reply) sobota 9 Lipiec , 2011

    Prosiłbym o odpowiedź jeśli to możliwe, z góry dziękuję

  13. ZIBI (Reply) niedziela 10 Lipiec , 2011

    :( może jakakolwiek odpowiedź np: że jes to niemożliwe? nie da się czy coś w tym rodzaju?

    • Websta (Reply) poniedziałek 11 Lipiec , 2011

      Spokojnie ;) Miałem właśnie drugi wolny weekend w tym roku :)
      Wtyczka działa z IE i to jest fakt. Jest jakiś problem u Ciebie, bo nie pokazuje też tego bannera flash u góry. Nie ma zbytnio jak tego sprawdzić, ale całkiem możliwe, że coś pomoże jak usuniesz przecinek po “pozycjad: -1.252441″

  14. ZIBI (Reply) czwartek 14 Lipiec , 2011

    Musze przyznać, że działa… cieszę się i Dziękuję…
    Jest wytłumaczenie czemu ten przecinek tyle zmienia podczas gdy w pozycji wyżej on występuje…
    Tak czy owak dzieła i jeszcze raz bardzo dziękuję…
    Będę musiał w przyszłości skupiać się bardziej na szczegółach…
    Pozdrowienia….

    • Websta (Reply) piątek 15 Lipiec , 2011

      Takie są zasady “pisowni” w js :)
      Cieszę się, że działa.
      Pozdrawiam.

  15. Paweł (Reply) piątek 15 Lipiec , 2011

    Świetny skrypt, ale mam problem. Chcę, by po kliknięciu w link mapka się wysuwała płynnie, stosuję do tego skrypt stąd:

    http://www.harrymaugans.com/2007/03/06/how-to-create-an-animated-sliding-collapsible-div-with-javascript-and-css/

    Po kliknięciu pojawia się mapka źle wycentrowana i nie widać jej całej (tylko kawałek widoczny w lewym górnym rogu). Jest na to jakieś rozwiązanie? Czy trzeba coś zmienić w Pana skrypcie czy w skrypcie z tej strony?

    Z góry dziękuję za pomoc!
    Pozdrawiam, Paweł

    • Websta (Reply) piątek 15 Lipiec , 2011

      Nie znam tego skryptu i niezbyt wiem na czym polega problem. Proponuję spróbować o wiele prostszego sposobu i użyć .slideToggle() w jQuery.

      Pozdrawiam.

  16. Sebastian (Reply) sobota 20 Sierpień , 2011

    To stary i wredny problem z Google Maps. Napisałem podobny plugin i małą instrukcję do tego:
    http://www.smashinglabs.pl/gmap/labs#resizing
    http://www.smashinglabs.pl/gmap/examples#loading

    Mam nadzieję Websta że nie masz nic przeciwko ;)

    • Websta (Reply) niedziela 21 Sierpień , 2011

      Najważniejsze, że rozwiązuje problem. Mi nie ubędzie ;)
      Pozdrawiam.

  17. tomaszc (Reply) niedziela 28 Sierpień , 2011

    Kiedys napisalem podobny skrypt oparty na php i mysql ale w zmianach serwerowych mysql zaczal strajkowa© . Skrypt polegal na tym iz wyswietlal kilka punktów na maps.google.pl a po kliknieciu przekierowywal na wybrany link – przydatne jak sie ma np stroné z kilkodziesiecioma odwiedzonymi miejscami .

    Ps : Jak jestes zainteresowany to chetnie przesle pliki :)

  18. Marcin (Reply) sobota 5 Listopad , 2011

    Mam jeden problem. Otóż chciałbym w chmurce wyświetlić zdjęcie a po kliknięciu na nie aby wyświetliło się duże zdjęcie coś na zasadzie lightbox-a. Gdy podłączyłem bibliotekę i umieściłem zdjęcia to niestety duże zdjęcie pojawia się w nowej karcie przeglądarki (przenosi mnie do adresu zdjęcia dużego) a po cofnięciu strony muszę od nowa wprowadzić adres lokalizacji. Wiem że można zastosować powiększenie okna informacyjnego gdzie można wyświetlić duże zdjęcie ale chodziło by mi raczej o efekt jaki oferuje biblioteka lightbox. Dzięki za wszelką pomoc

  19. Marcin (Reply) sobota 5 Listopad , 2011
  20. Extra Reading…

    [...]we like to honor other sites on the web, even if they aren’t related to us, by linking to them. Below are some sites worth checking out[...]…

  21. Łukasz (Reply) sobota 7 Styczeń , 2012

    Dzięki za skrypt.. W końcu W3C się zgadza :) Kawał dobrej roboty

  22. przemek (Reply) niedziela 15 Styczeń , 2012

    jak ma wygladac wartosc w parametrze zoom ?

  23. … [Trackback]…

    [...] There you will find 69104 more Infos: websta.pl/download/google-maps-jquery-plugin-do-wstawiania-map-google-na-strone [...]…