Omówienie
Geomapa to mapa kraju, kontynentu lub regionu z kolorami i wartościami przypisanymi do konkretnych regionów. Wartości są wyświetlane jako skala kolorów. Możesz też określić opcjonalny tekst wyświetlany po najechaniu kursorem dla poszczególnych regionów. Mapa jest renderowana w przeglądarce za pomocą osadzonego odtwarzacza Flash. Pamiętaj, że mapy nie można przewijać ani przeciągać, ale można ją skonfigurować tak, by umożliwić jej powiększanie.
Przykłady
Podajemy 2 przykłady: jeden wykorzystujący styl wyświetlania regionów i drugi wykorzystujący styl wyświetlania znaczników.
Przykład regionów
Styl regionów wypełnia całe regiony (zwykle kraje) kolorami odpowiadającymi przypisanym przez Ciebie wartościom. Określ styl regionów, przypisując w kodzie atrybut options['dataMode']
= 'regions'
.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', { 'packages':['geomap'], // Note: you will need to get a mapsApiKey for your project. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' }); google.charts.setOnLoadCallback(drawMap); function drawMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'], ['Germany', 200], ['United States', 300], ['Brazil', 400], ['Canada', 500], ['France', 600], ['RU', 700] ]); var options = {}; options['dataMode'] = 'regions'; var container = document.getElementById('regions_div'); var geomap = new google.visualization.GeoMap(container); geomap.draw(data, options); }; </script> </head> <body> <div id="regions_div" style="width: 900px; height: 500px;"></div> </body> </html>
Przykład znaczników
Styl „Znaczniki” wyświetla okrąg, odpowiedni rozmiar i kolor, aby wskazać wartość w określonych przez Ciebie regionach.
<html> <head> <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script> <script type='text/javascript'> google.charts.load('current', {'packages': ['geomap']}); google.charts.setOnLoadCallback(drawMap); function drawMap() { var data = google.visualization.arrayToDataTable([ ['City', 'Popularity'], ['New York', 200], ['Boston', 300], ['Miami', 400], ['Chicago', 500], ['Los Angeles', 600], ['Houston', 700] ]); var options = {}; options['region'] = 'US'; options['colors'] = [0xFF8747, 0xFFB581, 0xc06000]; //orange colors options['dataMode'] = 'markers'; var container = document.getElementById('map_canvas'); var geomap = new google.visualization.GeoMap(container); geomap.draw(data, options); }; </script> </head> <body> <div id='map_canvas'></div> </body> </html>
Wczytuję
Nazwa pakietu google.charts.load
to "geomap"
google.charts.load('current', {'packages': ['geomap']});
Nazwa klasy wizualizacji mapy geograficznej to google.visualization.GeoMap
var visualization = new google.visualization.GeoMap(container);
Format danych
Obsługiwane są 2 formaty adresów, z których każdy obsługuje inną liczbę kolumn i inne typy danych w każdej kolumnie. Wszystkie adresy w tabeli muszą używać jednego lub drugiego. Nie można mieszać typów.
- Format 1: lokalizacje szerokości/długości geograficznej. Ten format działa tylko wtedy, gdy opcja
dataMode
to „markery”. Jeśli używasz tego formatu, nie musisz dodawać kodu JavaScript Map Google. Lokalizacja jest wpisana w 2 kolumnach i 2 opcjonalnych kolumnach:- [Liczba, wymagana] Szerokość geograficzna. Liczby dodatnie oznaczają północ, a ujemne – południe.
- [Liczba, wymagana] długość geograficzna. Liczby dodatnie oznaczają wschód, a ujemne – zachód.
- [Liczba, opcjonalnie] Wartość liczbowa wyświetlana, gdy użytkownik najedzie kursorem na ten region. Jeśli używana jest kolumna 4, jest ona wymagana.
- [Ciąg znaków, opcjonalny] Dodatkowy tekst ciągu wyświetlany, gdy użytkownik najedzie kursorem na ten region.
- Format 2: adres, nazwa kraju, lokalizacje w nazwach regionów lub obszary miejskie w Stanach Zjednoczonych. Ten format działa, gdy opcja
dataMode
ma wartość „markery” lub „regiony”. Lokalizacja jest wpisana w jednej kolumnie i 2 opcjonalnych kolumnach:- [Ciąg, wymagany] lokalizacja na mapie. Akceptowane są te formaty:
- Konkretny adres (na przykład „1600 Pennsylvania Ave”).
- Nazwa kraju jako ciąg znaków (np. „Anglia”), kod ISO-3166 pisany wielkimi literami lub jego odpowiedni tekst w języku angielskim (np. „GB” lub „Polska”).
- Nazwa kodowa regionu pisana wielkimi literami w formacie ISO-3166-2 lub jego odpowiednik w języku angielskim (np. „US-NJ” lub „New Jersey”). Uwaga: regiony można określić tylko wtedy, gdy opcja dataMode jest ustawiona na „regions”.
- miejski numer kierunkowy. Są to 3-cyfrowe kody obszarów miejskich używane do wyznaczania różnych regionów. Obsługiwane są tylko kody w Stanach Zjednoczonych. Pamiętaj, że to nie to samo co telefoniczne numery kierunkowe.
- [Liczba, opcjonalnie] Wartość liczbowa wyświetlana, gdy użytkownik najedzie kursorem na ten region. Jeśli używana jest kolumna 3, jest ona wymagana.
- [Ciąg znaków, opcjonalny] Dodatkowy tekst ciągu wyświetlany, gdy użytkownik najedzie kursorem na ten region.
- [Ciąg, wymagany] lokalizacja na mapie. Akceptowane są te formaty:
Uwaga: mapa może wyświetlać maksymalnie 400 pozycji. Jeśli DataTable lub DataView zawiera więcej niż 400 wierszy, wyświetli się tylko pierwsze 400 pozycji. Najszybsze tryby to dataMode='regions'
z lokalizacjami określonymi jako kody ISO i dataMode='markers'
z uwzględnieniem szerokości i długości geograficznej. Najwolniejszy tryb to dataMode='markers'
z adresem w postaci ciągu znaków.
Ważne: DataTable
musi zawierać każdą opcjonalną kolumnę poprzedzającą dowolną kolumnę, której chcesz użyć. Jeśli na przykład chcesz podać tabelę szerokości i długości geograficznej i chcesz użyć tylko kolumn 1, 2 i 4, funkcja DataTable
musi nadal definiować kolumnę 3 (chociaż nie musisz dodawać do niej żadnych wartości):
dataTable = new google.visualization.DataTable(); dataTable.addRows(1); dataTable.addColumn('number', 'LATITUDE', 'Latitude'); dataTable.addColumn('number', 'LONGITUDE', 'Longitude'); dataTable.addColumn('number', 'VALUE', 'Value'); // Won't use this column, but still must define it. dataTable.addColumn('string', 'HOVER', 'HoverText'); dataTable.setValue(0,0,47.00); dataTable.setValue(0,1,-122.00); dataTable.setValue(0,3,"Hello World!");
Opcje konfiguracji
Nazwa | Typ | Domyślne | Opis |
---|---|---|---|
region |
string, | „world” | Obszar do wyświetlenia na mapie. (Wyświetlą się też otoczenie). Może to być kod kraju (w formacie ISO-3166 pisany wielkimi literami) lub jeden z tych ciągów:
Geomapa nie umożliwia przewijania ani przeciągania, a jedynie ograniczone powiększanie. Podstawowe pomniejszanie można włączyć, ustawiając właściwość |
dataMode |
string, | „regiony” | Jak wyświetlać wartości na mapie. Obsługiwane są 2 wartości:
|
width |
string, | „556 piks.” | Szerokość wizualizacji. Jeśli nie podasz żadnych jednostek, domyślną jednostką będą piksele. |
height |
string, | „347 piks.” | Wysokość wizualizacji. Jeśli nie podasz żadnych jednostek, domyślną jednostką będą piksele. |
colors |
Tablica numerów RGB w formacie 0xRRGGBB | [0xE0FFD4, 0xA5EF63, 0x50AA00, 0x267114] | Gradient koloru do przypisania do wartości na wizualizacji. Musisz mieć co najmniej 2 wartości. Gradient będzie zawierał wszystkie wartości, a także obliczone wartości pośrednie, przy czym najjaśniejszy kolor ma wartość najmniejszą, a najciemniejszy – najwyższy. |
showLegend |
boolean | prawda | Jeśli ma wartość true, wyświetl legendę mapy. |
showZoomOut |
boolean | false | Jeśli ma wartość true (prawda), wyświetl przycisk z etykietą określoną przez właściwość zoomOutLabel . Pamiętaj, że kliknięcie tego przycisku nie ma nic wspólnego z wyjątkiem wywołania zdarzenia zoomOut .
Aby obsługiwać powiększanie, przechwyć to zdarzenie i zmień opcję region .
showZoomOut możesz określić tylko wtedy, gdy opcja region jest mniejsza niż widok świata. Jednym ze sposobów na włączenie powiększenia jest nasłuchiwanie zdarzenia regionClick , zmiana właściwości region na odpowiedni region i wczytanie mapy ponownie. |
zoomOutLabel |
string, | Pomniejsz | Etykieta przycisku powiększenia. |
Metody
Metoda | Typ zwracanej wartości | Opis |
---|---|---|
draw(data, options) |
Brak | Rysuje mapę. Można powrócić przed zakończeniem rysowania (patrz zdarzenie drawingDone() ). |
getSelection() |
Tablica elementów zaznaczenia | Standardowa implementacja getSelection() . Wybrane elementy to wiersze. Ta metoda działa tylko wtedy, gdy opcja dataMode ma wartość „regiony”. Możesz wybrać tylko region z przypisaną wartością. |
setSelection(selection) |
Brak | Implementacja standardowa setSelection() . Traktuje zaznaczenie jako wybór wiersza i obsługuje wybór wielu wierszy. Można wybierać tylko regiony z przypisanymi wartościami. |
Zdarzenia
Nazwa | Opis | Właściwości |
---|---|---|
error |
Uruchamiane, gdy podczas próby wyrenderowania wykresu wystąpi błąd. | identyfikator, wiadomość |
select |
Uruchamiane, gdy użytkownik kliknie region z przypisaną wartością. Aby dowiedzieć się, co zostało wybrane, zadzwoń pod numer Uwaga: ze względu na pewne ograniczenia zdarzenie |
Brak |
regionClick |
Wywoływane po kliknięciu regionu. Działa zarówno w przypadku „regionów”, jak i „znaczników” Uwaga: ze względu na pewne ograniczenia zdarzenie |
Obiekt z pojedynczą właściwością (region ) będącym ciągiem znaków w formacie ISO-3166 opisującym kliknięty region. |
zoomOut |
Wywoływane po kliknięciu przycisku pomniejszania. Aby obsługiwać powiększanie, przechwyć to zdarzenie i zmień opcję Uwaga: ze względu na pewne ograniczenia zdarzenie |
Brak |
drawingDone |
Wywoływane po zakończeniu rysowania mapy geograficznej. | Brak |
Zasady dotyczące danych
Lokalizacje są geokodowane przez Mapy Google. Dane, które nie wymagają geokodowania, nie są wysyłane na żaden serwer. Więcej informacji o zasadach dotyczących danych znajdziesz w Warunkach korzystania z Map Google.
Uwagi
Ze względu na ustawienia zabezpieczeń Flash ten element (podobnie jak wszystkie wizualizacje oparte na Flashu) może nie działać prawidłowo, gdy zostanie otwarty z lokalizacji pliku w przeglądarce (np. file:///c:/webhost/myhost/myviz.html), a nie z adresu URL serwera WWW (np. http://www.mojhost.com/myviz.html). Zazwyczaj jest to tylko problem testowy. Możesz rozwiązać ten problem w sposób opisany w witrynie Macromedia.