Newsletter

Grupa MagazynyInternetowe

Online: 999

Wyszukiwarka

Google, Aplikacje internetowe

Google Maps API - zostań wielkim bratem (2)

Google Maps API - zostań wielkim bratem (2) Wiesz już, jak wstawiać proste mapy Google na swoją stronę oraz jak precyzyjnie dostosować ich kształt i wygląd do własnych potrzeb. Czas przejść do bardziej zaawansowanych funkcji oferowanych przez Google Maps API.

Paweł Gruszecki

W drugiej części artykułu o Google Maps API odsłonimy kulisy nanoszenia kolorowych warstw na mapę, animowania przejść pomiędzy różnymi adresami oraz wyznaczania trasy przejazdu samochodem pomiędzy zadanymi punktami. Co więcej, zaprezentujemy także metodę wstawiania reklam Google AdSense na mapę, a nawet przepis na tworzenie całkowicie własnych mapek, wykorzystujących Google Maps. A więc zaczynamy!

Zmiana nazw typów widoków

W poprzednim artykule zaprezentowaliśmy kontrolki, które możesz dołączyć do swojej mapy. Była wśród nich również kontrolka odpowiedzialna za wybór widoku mapy przez użytkownika. Przypomnijmy, że możesz udostępnić taką kontrolkę w następujący sposób:

 
 
JavaScript
Pobierz
map.addControl(new GMapTypeControl());

Prezentowane typy mapy mają jednak anglojęzyczne nazwy. Co zrobić, aby spolonizować kontrolkę?

[+]
 
JavaScript
Pobierz
 1. var types = map.getMapTypes();
 2. types[0].getName = function() {
 3.   return "Satelita";
 4. }
 5. types[1].getName = function() {
 6.   return "Hybryda";
 7. }
 8. types[2].getName = function() {
 9.   return "Mapa";
10. }

Za pomocą metody getMapTypes() klasy GMap2 zwracane są aktualnie dostępne widoki w formie tablicy. Jeśli chcesz zmienić ich nazwę, wystarczy podmienić dla każdego elementu tej tablicy funkcję getName() na własną.

Animowanie przejścia między punktami

Silnik Google Maps pozwala na płynne animowanie przejść pomiędzy różnymi punktami. Służy do tego metoda panTo() klasy GMap2.

 
 
JavaScript
Pobierz
map.panTo(point);

Przesuwa ona "kamerę" do wskazanego punktu. Jeśli punkt ten znajduje się w wyświetlanej części mapy lub niedaleko jej obrzeży, nastąpi płynne przejście. Jeśli wyszukiwany punkt znajduje się dalej, wówczas nastąpi gwałtowny przeskok.

Oto, w jaki sposób możesz wykorzystać metodę panTo w celu utworzenia animowanych i ładnych przejść po mapie. Na początek przygotujemy kilka przydatnych funkcji pomocniczych, które będą na potrzeby tego przykładu realizować zadanie przybliżania, oddalania oraz przesuwania widoku kamery do określonego punktu (animacja). Aby oczekiwane operacje wykonywane były sekwencyjnie, wykorzystamy funkcję setTimeout() do ustalenia precyzyjnego czasu wywołania każdej z nich. Każda operacja przesuwa moment wyzwolenia kolejnej.

[-]
 
JavaScript
Pobierz
Listing zwinięty - 34 linii

Google Maps API - zostań wielkim bratem (2) W powyższych przykładach zastosowane zostały najprostsze metody sterowania animacją. Ponieważ jednak szybkość przesuwania mapy oraz zoomów może zależeć od szybkości komputera oraz łącza internetowego, ustawiane na stałe czasy nie są najlepszym pomysłem.

Lepiej byłoby więc zaimplementować mechanizmy sprawdzające, czy określona operacja została wykonana i dopiero wówczas zrealizować kolejną. Pozostawiamy to jednak do samodzielnego dopracowania.

Gdy mamy już utworzone wszystkie funkcje pomocnicze, czas na zainicjowanie animacji:

[+]
 
JavaScript
Pobierz
 1. var geodecoder = null;
 2. var map = null;
 3. var tim = 1000;
 4. function load() {
 5.   if (GBrowserIsCompatible()) {
 6.     map = new GMap2(document.getElementById("map"));
 7.     geocoder = new GClientGeocoder();
 8.     ...
 9.     showAddress("Nawojki 11, Krakow, PL", 8);
10.     zoomIn("Uniwersytet Jagiellonski<br />Wydzial Matematyki i Informatyki");
11.     animateTo("Mickiewicza 30, Krakow, PL");
12.     zoomIn("Akademia Gorniczo-Hutnicza<br />Wydzial Fizyki i Informatyki
    Stosowanej");
13.     zoomOut();
14.     animateTo("Bankowa 14, Katowice, PL");
15.     zoomIn("Uniwersytet Slaski<br />Wydzial Matematyki, Fizyki i Chemii");
16.     zoomOut();
17.     animateTo("Akademicka 16, Gliwice, PL");
18.     zoomIn("Politechnika Slaska<br />Wydzial Automatyki, Elektroniki i
    Informatyki");
19.     zoomOut();
20.     animateTo("Uniwersytet Wroclawski, PL");
21.     zoomIn("Uniwersytet Wroclawski<br />Wydzial Matematyki i Informatyki");
22.     zoomOut();
23.     ...
24.   }
25. }

Powyższy kod prezentuje na mapie wybrane uczelnie kształcące informatyków na południu Polski. Pomiędzy poszczególnymi miastami i uczelniami następuje płynne przejście. W każdym mieście realizowane jest przybliżenie do widoku uczelni, a następnie powrót do mapy w mniejszej skali.

Aby możliwe były animacje przejść na większych obszarach, konieczne będzie spore oddalenie oraz odpowiednio duża mapa (aby poszczególne miejscowości znajdowały się w widocznej jej części lub na obrzeżach). Dlatego pamiętaj, aby powiększyć warstwę z mapą. Rozmiar 1000 x 500 pikseli powinien wystarczyć:

 
 
HTML
Pobierz
<div id="map" style="width: 1000px; height: 500px"></div>

Animowane przejścia można wykorzystać do tworzenia ciekawych prezentacji. Na niektórych przeglądarkach Google Maps umożliwia również płynne skalowanie zoomu. Niestety częściej zauważalny jest mniej ciekawy efekt "skoku" zoomu.

28 maja 2008

Powiązane publikacje

20 najlepszych internetowych API

20 najlepszych internetowych API

Google Maps API - zostań wielkim bratem

Google Maps API - zostań wielkim bratem

 
Skomentuj
ten artykuł

Brak komentarzy

Kod obrazkowy
(Kliknij, aby zmienić)
 

Autor

Paweł Gruszecki

Jest administratorem, programistą systemów operacyjnych i aplikacji internetowych. Internetem zajmuje się od 1998 roku, niemal od początku działając również jako dziennikarz branżowy. W 2001 roku rozpoczął współpracę w charakterze dziennikarza i specjalisty z Magazynem Internet, aby kilka lat później uczestniczyć w postawaniu magazynu Internet Maker.

Ma na koncie kilka biznesów internetowych, obecnie w jednej ze współtworzonych przez siebie spółek zajmuje się koordynacją projektów informatycznych i zarządzaniem marką Vbiz.pl (vbiz.pl ). Posiada wyższe wykształcenie informatyczne ze specjalizacją związaną z prawem komputerowym. Zarówno informatyka, jak i dziennikarstwo są jego pasją. Od 10 lat z przyjemnością obserwuje rozwój internetu w Polsce.

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.