www.gmapsapi.com

Kompleksowy kurs podstaw API, po którym mapowianie nie będzie miało przed Tobą żadnych tajemnic!

Setki przykładów, kursów i poradników z kodem gotowym do skopiowania i korzystania.

Największa strona o Google Maps API w Polsce, największe źródło informacji w języku polskim.

Polilinie

« powrót do listy kategorii

Jedną z bardziej nowatorskich opcji, jakie oferuje API Google Maps, jest możliwość rysowania polilinii i poligonów (zamkniętych poliliniii z wypełnieniem). Dzięki temu mapa może wzbogacić się o narysowany przez nas szlak, obrys państwa, zaznaczenie drogi dojazdu - lista możliwości się na tym nie wyczerpuje

Zanim zaczniemy rysować...

Jeśli twoja mapa ma umożliwiać wstawianie polilinii, musisz zmienić trochę zawartość nagłówka strony. Do tagu <html> należy dodać następujący ciąg: xmlns:v="urn:schemas-microsoft-com:vml" tak, by po tej operacji nagłówek strony przypominał ten poniżej:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'   
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>   
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">

Krokiem drugim jest dodanie w sekcji HEAD deklaracji stylu CSS:

<style type="text/css">
	v\:* {
		behavior:url(#default#VML);
	}
</style>

Dzięki tym zabiegom, wyświetlanie polilinii będzie również możliwe w najpopularniejszej (jak widać, nie zawsze znaczy to najlepszej) przeglądarce świata - Internet Explorer. Mając za sobą ten krok, możemy przejść do części właściwej.

Pierwsza polilinia

Polilinia reprezentowana jest jako obiekt klasy GPolyline. Ogólna składnia przy tworzeniu wygląda następująco:

var polilinia = new GPolyline(punkty,kolor,grubość,przezroczystość)

gdzie:

  • punkty - tablica, zawierająca punkty odpowiadające kolejnym wierzchołkom (punkty muszą być przekazywane jako obiekty GLatLng())
  • kolor - string, reprezentujący kolor rysowanej polilinii w formacie RGB i HTMLowskim zapisie #rrggbb
  • grubość - grubość, wyrażona w całkowitej liczbie pikselów
  • przezroczystość - liczba z przedziału 0 - 1, określająca stopnień przezroczystości polilinii (0- całkowicie przezroczysta, 1 - całkowicie nieprzezroczysta)

Wszystkie parametry poza pierwszym są opcjonalne i można je pominąć. Poniżej fragment przykładu 1, pokazującego wstawianie poliliniii:

if(GBrowserIsCompatible())
{
	var mapa = new GMap2(document.getElementById('mapka'),{mapTypes: [G_NORMAL_MAP]});
	mapa.setCenter(new GLatLng(53.31,17.8),10);
	
	// współrzędne Szczecina
	// B = 53.4200000, L = 14.5877800
	var szczecin = new GLatLng(53.4200000, 14.5877800);

	// współrzędne Warszawy
	// B = 52.2604880, L = 21.0210514
	var warszawa = new GLatLng(52.2604880, 21.0210514);
	
	var punkty = [szczecin,warszawa];
	
	var polilinia = new GPolyline(punkty,'#ff0000',3);
	mapa.addOverlay(polilinia);
}

Efektem działanie będzie wyświetlenie na mapie lini prostej, łączącej Szczecin z Warszawą. Linia ta będzie czerwona (#ff0000) o grubości 3 px.
Zobacz pełny kod i jego działanie w przykładzie 1 przykład 1pokaż kod przykładu(zwróć uwagę na zmienione fragmenty w sekcji HEAD)

Polilinie z wypełnieniem

APi umożliwia również narysowanie zamkniętej polilinii wraz z zdefiniowanym wypełnieniem. Sposób tworzenia jest identyczny jak w przypadku zwykłej polilinii z dwiema różnicami - nazwa klasy dla polilinii z wypełnieniem to GPolygon, w stosunku do GPolyline posiada ona o dwa argumenty więcej:

var polilinia = new GPolygon(punkty,linia_kolor,linia_grubość,linia_przezroczystość,wypełnienie_kolor,wypełnienie_przezroczystość)

gdzie:

  • punkty - tablica, zawierająca punkty odpowiadające kolejnym wierzchołkom (punkty muszą być przekazywane jako obiekty GLatLng())
  • linia_kolor - string, reprezentujący kolor rysowanej polilinii w formacie RGB i HTMLowskim zapisie #rrggbb
  • linia_grubość - grubość, wyrażona w całkowitej liczbie pikselów
  • linia_przezroczystość - liczba z przedziału 0 - 1, określająca stopnień przezroczystości polilinii (0- całkowicie przezroczysta, 1 - całkowicie nieprzezroczysta)
  • wypełnienie_kolor - string, reprezentujący kolor wypełnienia rysowanej polilinii w formacie RGB i HTMLowskim zapisie #rrggbb
  • wypełnienie_przezroczystość - liczba z przedziału 0 - 1, określająca stopnień przezroczystości wypełnienia polilinii (0- całkowicie przezroczysta, 1 - całkowicie nieprzezroczysta)

W przykładzie 2.1 pokazano polilinię z wypełnieniem, pokazującą przybliżony obszar Polski. Fragment kodu, odpowiedzialnego za stworzenie linii:

Wszystkie parametry poza pierwszym są opcjonalne i można je pominąć. Poniżej fragment przykładu 1, pokazującego wstawianie poliliniii:

if(GBrowserIsCompatible())
{
	var mapa = new GMap2(document.getElementById('mapka'),{mapTypes: [G_NORMAL_MAP]});
	mapa.addControl(new GLargeMapControl());
	mapa.addControl(new GOverviewMapControl()); 
	mapa.addControl(new GScaleControl());

	mapa.setCenter(new GLatLng(52.119998657638156,19.599609375),6);
	
	// 90 punktów, w przybliżeniu pokrywających się z granicą Polski
	var punkty=[/*tutaj tablica z punktami, zobacz kod źródłowy przykładu*/];
				
	var polilinia = new GPolygon(punkty,'#ff0000',4,0.7,'#ff0000',0.2);
	mapa.addOverlay(polilinia);
}

Efektem działanie będzie wyświetlenie na mapie polilinii o kolorze czerwonym, z linią grubości 4px i przezroczystości 70%, oraz z 20% wypełnieniem w kolorze czerwonym
Zobacz pełny kod i jego działanie w przykładzie 2 przykład 2pokaż kod przykładu

Obsługa kliknięć

Od wersji 2.88, API obsługuje zdarzenie kliknięcia na polilinię. Przykład, wyświetlający dane punktu polilinii, który został kliknięty przedstawiony został poniżej: przykład 3pokaż kod przykładu

Pytania czytelników

  • Polilinie nie wyświetlają się w Internet Explorer, co robić?
    Nie zapomnij o dodaniu do nagłówka odpowiedniego kodu, dzięki któremu Internet Explorer będzie wyświetlał linie w technologii VML. Szczegóły we wprowadzeniu do tej części kursu.

Przejdź do kolejnej części kursu

Tytuł następnej części kursu to Obliczenia

Polecane artykuły

Dodaj stronę do ulubionego serwisu społecznościowego

Oto, co najczęściej czytają internauci, którzy przeczytali ten artykuł:

Kategorie markerów i polilinii

API v2

Stwórz markery/polilinie w kilku kategoriach, a następnie ukrywaj i pokazuj wybrane kategorie


Dodawanie markerów przez użytkownika

API v2

Poradnik pokazuje, w jaki sposób stworzyć formularz, pozwalający na dodawanie markerów


Dodawanie znaczników na mapę

API v3

Kurs podstaw cz. II: Podstawowe informacje na temat wstawiania markerów (znaczników)


Wyświetlanie listy widocznych markerow

API v2

Sposób na wyświetlenie listy widocznych w danym momencie markerów i ich opisów