簡介
「地理圖」是國家/地區、洲別或地區的地圖,並以下列三種方式識別出區域:
- 「地區」模式會標示整個區域,例如國家/地區、省或州。
- 標記模式會使用圓形來指定要根據指定值縮放的區域。
- 「文字」模式會以 ID 標示地區 (例如「俄羅斯」或「亞洲」)。
系統則會使用 SVG 或 VML 在瀏覽器中轉譯地理圖。請注意,地理圖是不可捲動或拖曳的,而且是折線圖,而不是地形圖;如果需要任何圖片,請考慮改用地圖視覺化。
地區地理圖
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':['geochart'], }); google.charts.setOnLoadCallback(drawRegionsMap); function drawRegionsMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'], ['Germany', 200], ['United States', 300], ['Brazil', 400], ['Canada', 500], ['France', 600], ['RU', 700] ]); var options = {}; var chart = new google.visualization.GeoChart(document.getElementById('regions_div')); chart.draw(data, options); } </script> </head> <body> <div id="regions_div" style="width: 900px; height: 500px;"></div> </body> </html>
標記地理圖
markers
樣式會在您指定的地理區域圖表中,以您指定的色彩和大小呈現圓形。
試著將滑鼠懸停在羅馬周圍雜亂的標記上,並打開放大鏡,以顯示更詳細的標記。(Internet Explorer 8 以下版本並不支援放大鏡)。
<html> <head> <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script> <script type='text/javascript'> google.charts.load('current', { 'packages': ['geochart'], // Note: Because markers require geocoding, you'll need a mapsApiKey. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' }); google.charts.setOnLoadCallback(drawMarkersMap); function drawMarkersMap() { var data = google.visualization.arrayToDataTable([ ['City', 'Population', 'Area'], ['Rome', 2761477, 1285.31], ['Milan', 1324110, 181.76], ['Naples', 959574, 117.27], ['Turin', 907563, 130.17], ['Palermo', 655875, 158.9], ['Genoa', 607906, 243.60], ['Bologna', 380181, 140.7], ['Florence', 371282, 102.41], ['Fiumicino', 67370, 213.44], ['Anzio', 52192, 43.43], ['Ciampino', 38262, 11] ]); var options = { region: 'IT', displayMode: 'markers', colorAxis: {colors: ['green', 'blue']} }; var chart = new google.visualization.GeoChart(document.getElementById('chart_div')); chart.draw(data, options); }; </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div> </body> </html>
顯示比例標記
一般而言,標記地理圖會以最小的點顯示最小的標記值。如果您想顯示比例標記值 (例如,因為它們是百分比),請使用 sizeAxis
選項明確設定 minValue
和 maxValue
。
例如,以下是將歐洲、德國和波蘭三大國家和地區的人口及面積區分的地圖:人口都是絕對數字 (例如法國,則為 6500 萬) ,但總面積佔了總面積的 2, 500 萬個值
在這個程式碼中,我們使用 sizeAxis
指定 0 到 100 之間的標記大小。此外,我們也使用具有 RGB 值的 colorAxis
,以將顏色顯示為橘色到藍色等各色的人群,也就是對有色盲使用者有益的頻譜。最後,我們按照本文後面的「內容階層和代碼」一節,將西歐的 region
指定為 155。
<html> <head> <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script> <script type='text/javascript'> google.charts.load('current', { 'packages': ['geochart'], // Note: Because markers require geocoding, you'll need a mapsApiKey. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' }); google.charts.setOnLoadCallback(drawMarkersMap); function drawMarkersMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Population', 'Area Percentage'], ['France', 65700000, 50], ['Germany', 81890000, 27], ['Poland', 38540000, 23] ]); var options = { sizeAxis: { minValue: 0, maxValue: 100 }, region: '155', // Western Europe displayMode: 'markers', colorAxis: {colors: ['#e7711c', '#4374e0']} // orange to blue }; var chart = new google.visualization.GeoChart(document.getElementById('chart_div')); chart.draw(data, options); }; </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div> </body> </html>
文字地理圖
您可以使用 displayMode:
text
將文字標籤重疊在地理圖上。
var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'], ['South America', 600], ['Canada', 500], ['France', 600], ['Russia', 700], ['Australia', 600] ]); var options = { displayMode: 'text' };
<html> <head> <script type='text/javascript' src="https://www.gstatic.com/charts/loader.js"></script> <div id="regions_div" style="width: 900px; height: 500px;"></div> <script type="text/javascript"> google.charts.load('current', { 'packages': ['geochart'], // Note: Because this chart requires geocoding, you'll need a mapsApiKey. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' }); google.charts.setOnLoadCallback(drawRegionsMap); function drawRegionsMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'], ['South America', 600], ['Canada', 500], ['France', 600], ['Russia', 700], ['Australia', 600] ]); var options = { displayMode: 'text' }; var chart = new google.visualization.GeoChart(document.getElementById('regions_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div> </body> </html>
為圖表加上顏色
有多種選項可以自訂 GeoCharts 的顏色:
colorAxis
:資料表所含區域使用的色彩頻譜。backgroundColor
:圖表的背景顏色。datalessRegionColor
:指派給沒有關聯資料的區域。defaultColor
:要指派給資料表內其值為null
或未指定的地區顏色。
colorAxis
選項相當重要:可為資料值指定顏色範圍。在 colorAxis
陣列中,第一個元素是指派給資料集中最小值的顏色,最後一個元素則是提供給資料集中最大值的顏色。如果您指定超過兩種顏色,會於兩者之間進行內插。
在下圖中,我們會使用這四個選項。colorAxis
用於顯示非洲國家/地區的緯度顏色,使用北極的顏色:從北紅色的紅色到黑色,以及由南方的綠色。backgroundColor
選項用於為背景加上淡藍色,datalessRegionColor
用於為非非洲國家/地區加上淺色粉色,defaultColor
則用於馬達加斯加。
var options = { region: '002', // Africa colorAxis: {colors: ['#00853f', 'black', '#e31b23']}, backgroundColor: '#81d4fa', datalessRegionColor: '#f8bbd0', defaultColor: '#f5f5f5', };
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', { 'packages':['geochart'], // Note: Because this chart requires geocoding, you'll need mapsApiKey. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' }); google.charts.setOnLoadCallback(drawRegionsMap); function drawRegionsMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Latitude'], ['Algeria', 36], ['Angola', -8], ['Benin', 6], ['Botswana', -24], ['Burkina Faso', 12], ['Burundi', -3], ['Cameroon', 3], ['Canary Islands', 28], ['Cape Verde', 15], ['Central African Republic', 4], ['Ceuta', 35], ['Chad', 12], ['Comoros', -12], ['Cote d\'Ivoire', 6], ['Democratic Republic of the Congo', -3], ['Djibouti', 12], ['Egypt', 26], ['Equatorial Guinea', 3], ['Eritrea', 15], ['Ethiopia', 9], ['Gabon', 0], ['Gambia', 13], ['Ghana', 5], ['Guinea', 10], ['Guinea-Bissau', 12], ['Kenya', -1], ['Lesotho', -29], ['Liberia', 6], ['Libya', 32], ['Madagascar', null], ['Madeira', 33], ['Malawi', -14], ['Mali', 12], ['Mauritania', 18], ['Mauritius', -20], ['Mayotte', -13], ['Melilla', 35], ['Morocco', 32], ['Mozambique', -25], ['Namibia', -22], ['Niger', 14], ['Nigeria', 8], ['Republic of the Congo', -1], ['Réunion', -21], ['Rwanda', -2], ['Saint Helena', -16], ['São Tomé and Principe', 0], ['Senegal', 15], ['Seychelles', -5], ['Sierra Leone', 8], ['Somalia', 2], ['Sudan', 15], ['South Africa', -30], ['South Sudan', 5], ['Swaziland', -26], ['Tanzania', -6], ['Togo', 6], ['Tunisia', 34], ['Uganda', 1], ['Western Sahara', 25], ['Zambia', -15], ['Zimbabwe', -18] ]); var options = { region: '002', // Africa colorAxis: {colors: ['#00853f', 'black', '#e31b23']}, backgroundColor: '#81d4fa', datalessRegionColor: '#f8bbd0', defaultColor: '#f5f5f5', }; var chart = new google.visualization.GeoChart(document.getElementById('geochart-colors')); chart.draw(data, options); }; </script> </head> <body> <div id="geochart-colors" style="width: 700px; height: 433px;"></div> </body> </html>
載入中
google.charts.load
套件名稱為 "geochart"
。請注意,請不要複製我們的 mapsApiKey,否則無法複製。只要圖表不需要進行地理編碼,或使用非標準程式碼來識別位置,您就不需要 mapsApiKey。詳情請參閱載入設定。
google.charts.load('current', { 'packages': ['geochart'], // Note: if your chart requires geocoding or uses nonstandard codes, you'll // need to get a mapsApiKey for your project. The one below won't work. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' });
地理圖視覺化類別的名稱是 google.visualization.GeoChart
。
var visualization = new google.visualization.GeoChart(container);
資料格式
DataTable 的格式會因您使用的顯示模式而異:regions
、markers
或 text
。
地區模式格式
將地點輸入一個資料欄,再加上一個選填的欄,如下所述:
-
區域位置 [字串,必填] - 要醒目顯示的區域。
可接受以下所有格式。您可以在不同的列中使用不同的格式:
- 國家/地區名稱,以字串 (例如「英格」) 或大寫字母 ISO-3166-1 alpha-2 代碼表示,或使用大寫的英文文字 (例如「GB」或「UK」)。
- 大寫的 ISO-3166-2 區域名稱,或是其對應的英文文字 (例如「US-NJ」或「New Jersey」)。
- 「都市區碼」。這些是一組三位數的都會區代碼,可用於指定不同地區;僅支援美國代碼。請注意,這些代碼與電話區碼不相同。
region
屬性支援的任何值。
-
區域顏色 [Number, 選填] - 這個數值欄可用於指定這個地區的顏色,以
colorAxis.colors
屬性中指定的比例為準。如果沒有這個欄位,所有區域都會使用相同的顏色。如果有資料欄,則不得使用空值。值會根據sizeAxis.minValue
/sizeAxis.maxValue
值或colorAxis.values
屬性中指定的值 (如有提供) 進行縮放。
標記模式格式
資料欄數會因使用的標記格式以及其他選用資料欄而不同。
-
標記位置 [必填]
或
第一欄是特定的字串位址 (例如「1600 Pennsylvania Ave」)。前兩欄為數字,其中第一欄是緯度,第二欄是經度。
注意:雖然我們建議採用「地區」模式來採用 ISO 3166 代碼,但「標記」模式最適合地區名稱 (例如德國、巴拿馬等) 使用。這是因為地理圖 (標記模式) 使用 Google 地圖進行地點地理編碼 (將字串位置轉換為經緯度)。這可能會導致系統產生不明確的定位,無法如預期般地進行地理編碼;舉例來說,「DE」代表德國或德拉瓦州的「DE」記錄,而巴拿馬或賓夕法尼亞州則是「PA」。
-
標記顏色 [數字,選填] 下一欄是選填的數字欄,可根據
colorAxis.colors
屬性中指定的比例,為這個標記指派顏色。如果沒有這個欄位,所有標記都會使用相同的顏色。如果有資料欄,則不得使用空值。值會相互相對調整,或是絕對值 (如colorAxis.values
屬性中指定的值)。 - 標記大小 [數字,選填] 這個選用資料欄可用於指派標記大小相對於其他標記大小。如果沒有這個欄位,則會使用上一個資料欄的值 (如果沒有提供顏色欄,則會使用預設大小)。如果有資料欄,則不得使用空值。
文字模式格式
在第一個欄中輸入標籤,再加上一個選填欄:
- 文字標籤 [String, Required] 特定字串位址 (例如「1600 Pennsylvania Ave」)。
- 文字大小 [數字,選填] 第二個資料欄是選填的數值欄,可用來指派標籤的大小。如果沒有這一欄,所有標籤都會使用相同的大小。
設定選項
名稱 | |
---|---|
backgroundColor |
圖表主要區域的背景顏色。可以是簡單的 HTML 顏色字串,例如 類型:字串或物件
預設:白色
|
background..fill |
圖表會以 HTML 色彩字串填入顏色。 類型:字串
預設:白色
|
背景色彩 |
圖表邊框的顏色,以 HTML 顏色字串表示。 類型:字串
預設值:「#666」
|
背景色彩.筆寬度 |
框線寬度 (單位為像素)。 類型:數字
預設:0
|
顏色軸 |
這個物件可指定顏色欄值和顏色值或漸層比例之間的對應。若要指定此物件的屬性,您可以使用物件常值標記法,如下所示: {minValue: 0, colors: ['#FF0000', '#00FF00']} 類型:物件
預設值:空值
|
colorAxis.minValue |
如果存在,請指定圖表顏色資料的最小值。此數值更低的色彩資料值將是 類型:數字
預設值:圖表資料中色彩欄的最小值
|
色彩 Axis.maxValue |
如果存在,請指定圖表顏色資料的最大值。這個值 (或更高) 的顏色資料值會轉譯為 類型:數字
預設值:圖表資料中的色彩欄最大值
|
colorAxis.values |
如果有,請控制值與顏色的關聯方式。每個值都與 類型:數字陣列
預設值:空值
|
colorAxis.colors |
要為圖表中的值指派的顏色。字串陣列,其中每個元素都是 HTML 顏色字串,例如: 類型:色彩字串陣列
預設值:空值
|
無區域區域顏色 |
指派給沒有關聯資料的區域顏色。 類型:字串
預設值:「#F5F5F5」
|
預設顏色 |
地理點中,地點位於地點的色彩 (例如, 類型:字串
預設值:「#267114」
|
顯示模式 |
該類型為何種類型的地理圖。 資料表格格式必須與指定的值相符。支援下列值:
類型:字串
預設值:「auto」
|
網域 |
顯示與該區域之間的地理圖。舉例來說,將 類型:字串
預設值:空值
|
啟用區域互動 |
設為 true 時,啟用區域互動,包括滑鼠遊標懸停時的焦點和工具提示清除功能,以及滑鼠點擊時選取和觸發 在區域模式中,預設值為 2,標記模式則為 False。 類型:布林值
預設:自動
|
ForceIFrame |
在內嵌頁框中繪製圖表。(請注意,在 IE8 中,系統會忽略此選項;所有 IE8 圖表都會以 i-frames 繪製)。 類型:布林值
預設值:false
|
地理圖版本 |
GeoChart 框線資料的版本。有 類型:數字
預設:10 個
|
height |
視覺化的高度 (以像素為單位)。除非指定 類型:數字
預設:自動
|
KeepAspectRatio |
如為 true,系統將以自然比例繪製圖表,使其符合圖表區域的大小。如果只指定一個
如為 false,地理區域圖將依照 類型:布林值
預設:是
|
傳說 |
包含成員可設定圖例各個層面的物件 (如果沒有,則不應顯示「無」)。若要指定此物件的屬性,您可以使用物件常值標記法,如下所示: {textStyle: {color: 'blue', fontSize: 16}} 類型:物件/無
預設值:空值
|
圖例.numberFormat |
數字標籤的格式字串。這是 ICU 模式集的子集。舉例來說, 類型:字串
預設:自動
|
圖例.textStyle |
指定圖例文字樣式的物件。物件採用以下格式: { color: <string>, fontName: <string>, fontSize: <number>, bold: <boolean>, italic: <boolean> }
類型:物件
預設:
{color: 'black', fontName: <global-font-name>, fontSize: <global-font-size>}
|
區域 |
地理圖中顯示的區域。(也會顯示週邊區域)。可能是下列其中一個值:
類型:字串
預設值:'world'
|
放大鏡 |
包含成員,用於設定放大鏡不同方向的物件。若要指定此物件的 屬性,您可以使用物件常值標記法,如下所示: {enable: true, zoomFactor: 7.5} 類型:物件
預設:
{enable: true, zoomFactor: 5.0} |
magnatingGlass.enable |
如果為 true,當使用者停留在雜亂的標記上時,會開啟一個放大鏡。 注意:這項功能不支援不支援 SVG (例如 Internet Explorer 8 以下版本) 的瀏覽器。 類型:布林值
預設:是
|
放大鏡.zoomFactor |
放大鏡的縮放係數。可以是大於 0 的任何數字。 類型:數字
預設:5.0
|
MarkOpacity |
標記的不透明度,其中 0.0 完全透明,1.0 完全不透明。 類型:數字,0.0–1.0
預設值:1.0
|
區域代碼版本 |
地區碼資料的版本。有 類型:數字
預設:0
|
解決 |
地理圖的邊框解析度。選擇下列其中一個值:
類型:字串
預設值:「country」
|
大小軸 |
具有成員設定物件以設定對話框大小關聯方式的物件。若要指定此物件的 屬性,您可以使用物件常值標記法,如下所示: {minValue: 0, maxSize: 20} 類型:物件
預設值:空值
|
尺寸範圍大小 |
最大泡泡的最大半徑 (以像素為單位)。 類型:數字
預設:12
|
尺寸範圍大小 |
要對應至 類型:數字
預設:圖表資料中的尺寸欄最大值
|
尺寸 x 尺寸 |
最小可能泡泡的最小半徑,單位為像素。 類型:數字
預設:3
|
尺寸範圍大小 |
要對應至 類型:數字
預設:圖表資料中大小欄的最小值
|
工具提示 |
擁有成員可設定各種工具提示元素的物件。若要指定此物件的屬性,您可以使用物件常值標記法,如下所示: {textStyle: {color: '#FF0000'}, showColorCode: true} 類型:物件
預設值:空值
|
tooltip.text 樣式 |
指定工具提示文字樣式的物件。物件採用以下格式: { color: <string>, fontName: <string>, fontSize: <number>, bold: <boolean>, italic: <boolean> }
類型:物件
預設:
{color: 'black', fontName: <global-font-name>, fontSize: <global-font-size>}
|
tooltip.trigger |
顯示工具提示的使用者互動:
類型:字串
預設值:「focus」
|
width |
視覺寬度,以像素為單位。除非指定 類型:數字
預設:自動
|
連續階層與代碼
將 region
選項設為下列其中一個 3 位數代碼,即可查看大陸/子洲別的地理圖。代碼和階層是根據聯合國統計部所開發及維護的代碼 (部分除外) 提供。
洲 | 子洲別 | 國家/地區 |
---|---|---|
002 - 非洲 |
015 - 北非 |
DZ、EG、EH、LY、MA、SD、SS、TN |
011 - 西非 |
BF、 BJ、 CI、 CV、 GH、 GM、 GN、 GW、 LR、 3 L1, 32} | |
017 - 中非 |
AO、CD、ZR、CF、CG、CM、GA、GQ、 ST、 TD | |
014 - 東非 |
BI、 DJ、 ER、 ET、 KE、 KM、 MG、 MU、 MW、 、 } | |
018 - 南非 |
BW、LS、NA、SZ、ZA | |
150 - 歐洲 |
154 - 北歐 |
GG、 JE、 AX、 DK、 EE、 FI、 FO、 GB、 IE、 } |
155 - 西歐 |
AT、BE、CH、DE、DD、FR、FX、LI、 LU、 MC、 NL | |
151 - 東歐 |
BG、BY、CZ、HU、MD、PL、RO、RU、 SU、 SK、 UA | |
039 - 南歐 |
AD、 AL、 BA、 ES、 GI、 GR、 HR、 IT、 ME、 MK、 S | |
019 - 美洲地區 |
021 - 北美洲 |
BM、CA、GL、PM、US |
029 - 加勒比海 |
{13 月份} {13 月份} { /1, {1, ' /, }, {1, 後續時間, 之前 , {1,} , {1,}, , , , {1, }, {1, }, }, {1, }, }, }, 之前, 之前 | |
013 - 中美洲 |
BZ、CR、GT、HN、MX、NI、PA、SV | |
005 - 南美洲 |
AR、BO、BR、CL、CO、EC、 FK、 GF、 GY、 PE、 SY 2,2} | |
142 - 亞洲 |
143 - 中亞 |
TM、TJ、KG、KZ、UZ |
030 - 東亞 |
CN、HK、JP、KP、KR、MN、 MO、 TW | |
034 - 南亞 |
AF、BD、BT、IN、IR、LK、 MV、 NP、 PK | |
035 - 東南亞 |
BN、 ID、 KH、 LA、 MM、 BU、 MY、 PH、 SG、 T、 TL、2LTL | |
145 - 西亞 |
AE、 AM、 AZ、 BH、 CY、 GE、 IL、 }、 K、 K、 K、 K , K , K , K , K } | |
009 - 大洋洲 |
053 - 澳洲和紐西蘭 |
AU、NF、NZ |
054 - 美拉尼西亞 |
FJ、NC、PG、SB、VU | |
057 - 密克羅尼西亞 |
FM、 GU、 KI、 MH、 MP、 NR、 PW | |
061 - 玻里尼西亞 |
AS、CK、NU、PF、PN、TK、 TO、 TV、 WF、 WS |
方法
方法 | |
---|---|
clearChart() |
清除圖表並釋出其分配的所有資源。 傳回類型:無
|
draw(data, options) |
繪製圖表。只有在 傳回類型:無
|
getImageURI() |
傳回序列化為圖片 URI 的圖表。 在繪製圖表「之後」呼叫此方法。 請參閱列印 PNG 圖表。 傳回類型:字串
|
getSelection() |
傳回所選圖表實體的陣列。可選取的實體是指具有指定值的地區。這張圖表在任何時間點都只能選取一個實體。
傳回類型:選取元素陣列
|
setSelection() |
選取指定的圖表實體。取消先前選取的項目。
可選取的實體是指具有指定值的地區。在這份圖表中,您一次只能選取一個實體。 傳回類型:無
|
活動
名稱 | |
---|---|
error |
嘗試轉譯圖表時發生錯誤。 屬性:ID、訊息
|
ready |
圖表可供外部方法呼叫使用。如果您想要與圖表互動,並在繪製圖表後呼叫方法,請先為這個事件設定監聽器,然後再呼叫 屬性:無
|
regionClick |
在點選區域時呼叫。系統不會在「地區」選項中指派的國家/地區顯示這項資訊 (如已列出特定國家/地區)。
屬性:包含單一屬性
region 的物件;該物件是採用 ISO-3166 格式的字串,用於說明點擊的區域。 |
select |
使用者點選視覺實體時觸發。如要瞭解所選項目,請呼叫 屬性:無
|
資料政策
Google 地圖會對地點進行地理編碼。凡是不需要地理編碼的資料,都不會傳送至任何伺服器。 相關詳情請參閱《Google 地圖服務條款》。