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.
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:
- Google Maps V3 – podstawy
- Google Maps V3 – tutoriale
- Google Maps V3 – przykłady
- Google Maps V3 – dema
- Przydatne narzędzie do testowania kodów API
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.
Tagi: google, google maps, jQuery, mapa, plugin, pobierz, skrypt

Ś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.
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 ;)
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…
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.
Dokładnie tak to zrobiłem w celu sprawdzenia czy się waliduje
Ś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 !
Dobra robota ! Przyda się to cudo
Można umieścić dwa punkty na mapie ?
Można tylko jeden.
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 :) ?
Nie ma sprawy.
W najbliższym czasie chyba nic się nie pojawi o Google Maps, ale w przyszłości… kto wie ;)
Pozdrawiam.
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.
Świetna wskazówka.
Dzięki :)
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ł…
W jakiej wersji Ci nie działa?
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…:)
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.
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…:)
http://www.adamandmarekbud.hostoi.com/contact.php
Konkretniej jest ta mapka tutaj zawarta…
Pozdrawiam i jeszcze raz dziękuję
Prosiłbym o odpowiedź jeśli to możliwe, z góry dziękuję
:( może jakakolwiek odpowiedź np: że jes to niemożliwe? nie da się czy coś w tym rodzaju?
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″
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….
Takie są zasady “pisowni” w js :)
Cieszę się, że działa.
Pozdrawiam.
Ś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ł
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.
Spróbowałem tego i wychodzi to samo :(
Przykład jak taka mapa wygląda po wywołaniu funkcji::
http://www.essentialwebconcepts.com/blog/wp-content/uploads/2011/03/mapglitch.jpg
Prawdopodobnie trzeba odświerzyć diva po wywołaniu tej funkcji slideToggle(), ale nawet nie wiem jak się za to zabrać :|
Gdyby ktoś wiedział to proszę o pomoc:)
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 ;)
Najważniejsze, że rozwiązuje problem. Mi nie ubędzie ;)
Pozdrawiam.
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 :)
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
Już znalazłem rozwiązanie http://www.umaitech.com/sand/example_map_slimbox.htm
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[...]…
Dzięki za skrypt.. W końcu W3C się zgadza :) Kawał dobrej roboty
jak ma wygladac wartosc w parametrze zoom ?
… [Trackback]…
[...] There you will find 69104 more Infos: websta.pl/download/google-maps-jquery-plugin-do-wstawiania-map-google-na-strone [...]…