Wyłączenie przybliżenia scroll’em na mapach Google
Obecnie bardzo popularne stały się Mapy bezpośrednio pochodzące z Google (Google Maps) na całą szerokość strony (bez użycia API).
Z pewnością jest to bardzo ciekawy efekt. Jednak nie każdy zdaje sobie mapy udostępnione bezpośrednio z http://google.pl/maps/ w postaci iframe mają pewną wadę podczas przewijania scrollem myszy zaczynają przybliżać lub oddalać widok zamiast przesuwać nas dalej po stronie. Przybliżenie to jest domyślne.
Mimo to istnieją strony, posiadające mapy z Google na prawie całą szerokość i wysokość okna przeglądarki a jakoś nikt w nich nie utyka powiększając i zmniejszając. W tym poście postaram się pokazać jak zablokować funkcję scroll’a tak by scrollowanie nie było możliwe.
Co znajdziesz w tym wpisie
Metoda 1 wstawiania mapy – JavaScript
na podstawie http://web4you.com.pl/
Do tego celu użyjemy poniższego kodu. Po wprowadzeniu kodu powinniśmy mieć mapę na stronie mapę Polski o wymiarach 600px/400px
Google Maps JavaScript API v3 - Twoja pierwsza mapa
Jak ustawić mapę na nasze parametry:
Lokalizacje na mapie określają:
var lat=52.173931692568; var lng=18.8525390625;
Z kolei oddalenie to
var zoom=6;
A teraz wprowadzimy własne ustawienia zaczniemy od wejścia na stronę google maps i wyszukanie interesującej nas lokalizacji. Następnie pobieramy jej adres np:
https://www.google.pl/maps/place/Pozna%C5%84+City+Center/@52.4017401,16.9114558,16.75z/data=!4m12!1m9!4m8!1m0!1m6!1m2!1s0x47045b322b18c34f:0x145700ff326653af!2sPozna%C5%84+City+Center,+Matyi+2,+61-586+Pozna%C5%84!2m2!1d16.9142474!2d52.4019381!3m1!1s0x47045b322b18c34f:0x145700ff326653af
W powyższym liku szukamy parametru „/@” i zakończonego „/”. W tym przypadku to /@52.4017401,16.9114558,16.75z/.
Teraz modyfikuje wartości skryptu:
lat=52.4017401
lng=16.9114558
zoom=16
Po zapisaniu na mapie powinien się pojawić wybrany obszar w moim przykładzie będzie to dworzec główny PKP w Poznaniu.
Jak zablokować scrollowanie mapy
W celu zablokowania wystarczy dodać:
scrollwheel:false,
kod wstawiamy pomiędzy:
var myOptions = { }
Czyli dodajemy jako kolejną opcje.
Metoda 2 wstawiania – HTML i CSS
Metoda ta przydaje się jeśli użyjemy mapy bezpośrednio ze strony Google w formie iframe. Zacznijmy więc od podstaw:
Przykładowa mapa
Jak zablokować scrollowanie mapy
Istnieje kilka metod blokowania map tego typu jedną z nich jest wyłączenie obsługi scroll
W celu uzyskania tego efektu w HTML wstawiamy kod mapy pomiędzy
Następnie w CSS
.maps iframe{ pointer-events: none; }
Teraz po najechaniu myszką ma mapę nie będzie się ona scrolować a tym samym będziemy mogli normalnie poruszać się po stronie.
W tym przypadku oczywiście możemy również skorzystać JavaScript / jQuery.
Przykładowe użycie:
$('.maps').click(function () { $('.maps iframe').css("pointer-events", "auto"); }); $( ".maps" ).mouseleave(function() { $('.maps iframe').css("pointer-events", "none"); });
Innym sposobem jest nałożenie na mapę DIV posiadającego takie same wymiary co mapa.
HTML
CSS
.overlay { background:transparent; position:relative; width:640px; height:480px; /* your iframe height */ top:480px; /* your iframe height */ margin-top:-480px; /* your iframe height */ }
Ostateczny wybór metody zablokowania mapy zależy od nas jak widać mamy kilka opcji.
źródła:
http://stackoverflow.com/questions/21992498/disable-mouse-scroll-wheel-zoom-on-embedded-google-maps
dodatkowe tagi:
jak wyłączyć scroll w Google Maps
Wyłączanie scroll zooma w google map
mapa bez zbliżenia i oddalania
Mapy z Google
Jak wyłączyć scrollowanie na mapach
Wyłączenie przybliżenia scroll’em- gMap