地図チャート

緯度・経度、ジオハッシュ、ジオコード、GeoJSONを利用して地図上にデータを表示することができます

データ形式

地図チャートでは以下のデータ形式を地図上に表示することができます。

緯度・経度

指定された緯度・経度の位置にオブジェクトを描画します。 緯度・経度はそれぞれ数値型のカラムを指定します。 以下の描画タイプで利用できます。

  • ピン

  • バブル

  • ヒートマップ

  • フロー

    • 2組(ソースとターゲット)の緯度・経度情報が必要になります

ジオハッシュ

ジオハッシュの形式で指定された位置にオブジェクトを描画します。

以下の描画タイプでは、指定されたジオハッシュの中心点にオブジェクトを描画します。

  • ピン

  • バブル

  • ヒートマップ

以下の描画タイプでは、指定されたジオハッシュの領域を塗りつぶして描画します。 (指定するジオハッシュの精度によって、塗りつぶす領域の大きさが変化します)

  • メッシュ

ジオハッシュサンプル

以下にジオハッシュのサンプルを示します。

ジオハッシュ
精度
位置の例
領域サイズ (約)

xn

2文字

東京周辺

630km × 500km

xn7

3文字

東京都心部

78km × 78km

xn76

4文字

東京駅エリア

20km × 10km

xn76u

5文字

東京駅周辺

2.4km × 2.4km

xn76ur

6文字

東京駅近辺

610m × 300m

xn76urx

7文字

東京駅付近

76m × 76m

xn76urxk

8文字

東京駅周辺

19m × 9m

BigQuery の使用例

BigQuery では ST_GEOHASH 関数を使用して、緯度・経度のデータをジオハッシュに変換できます。 ジオハッシュに変換することで、緯度・経度を個別に扱うよりも効率的にエリア単位での集計やグルーピングが可能になります。

以下は、BigQuery の ST_GEOHASH 関数を使用して、緯度・経度のデータをジオハッシュに変換する例です。

SELECT
  ST_GEOHASH(ST_GEOGPOINT(longitude, latitude), 6) AS geohash,
  COUNT(*) AS station_count
FROM
  `bigquery-public-data.new_york_citibike.citibike_stations`
GROUP BY
  geohash
ORDER BY
  station_count DESC

ジオコード

ジオコードに紐づく領域を塗りつぶして描画します。 以下の描画タイプで利用できます。

  • エリア

ジオコードは、以下の形式の文字列で指定してください。

粒度
ジオコードの形式
ジオコードの例

2文字の国コード (ISO3166-1,大文字)

JP

都道府県(日本のみ)

"JP-"+2桁の都道府県コード (JIS X 0402)

JP-13

市区町村(日本のみ)

"JP-"+5桁の市区町村コード (JIS X 0402)

JP-13101

郵便番号の上位2桁(日本のみ)

"JP-POST-"+郵便番号の上位2桁

JP-POST-10

郵便番号の上位3桁(日本のみ)

"JP-POST-"+郵便番号の上位3桁

JP-POST-100

塗りつぶしに使う地理空間データは、以下のデータを加工して軽量化したものです。

なお、ジオコードの形式として有効であっても、上記データに含まれないジオコードは描画できません。

ジオコードサンプル

以下にジオコードのサンプルを示します。 指定可能なジオコードの一覧はジオコード一覧のCSVファイルを参照してください。

ジオコード
名称

US

アメリカ合衆国

JP

日本

JP-01

北海道

JP-02

青森県

JP-03

岩手県

JP-01100

札幌市

JP-01101

札幌市中央区

JP-01102

札幌市北区

JP-01103

札幌市東区

JP-01202

函館市

JP-01203

小樽市

JP-01204

旭川市

JP-POST-10

〒10X-XXXX

JP-POST-100

〒100-XXXX

GeoJSON

GeoJSON形式で指定されたジオメトリデータを地図上に描画します。 以下の描画タイプで利用できます。

  • ポリゴン

  • ポリライン

以下のジオメトリ型のJSONを文字列型で指定してください。

  • Point

  • LineString

  • Polygon

  • MultiPoint

  • MultiLineString

  • MultiPolygon

  • GeometryCollection

GeoJSONのサンプル

{
  "type": "Polygon",
  "coordinates": [
    [
      [-73.9812, 40.7681],
      [-73.9581, 40.7681],
      [-73.9581, 40.8007],
      [-73.9812, 40.8007],
      [-73.9812, 40.7681]
    ]
  ]
}

BigQuery の使用例

BigQuery では ST_ASGEOJSON 関数を使用して、ジオメトリデータを GeoJSON 形式に変換できます。 以下は、bigquery-public-data.geo_us_boundaries.counties テーブルの county_geom カラムを GeoJSON 形式に変換する例です。

SELECT
  * EXCEPT (county_geom),
  ST_ASGEOJSON(county_geom) AS county_geom
FROM
  `bigquery-public-data.geo_us_boundaries.counties`
WHERE
  state_fips_code = '36'  -- New York

描画対象のジオメトリデータのサイズが大きい場合、クエリ実行結果のサイズ制限に抵触し、エラーになる場合があります。 その場合、ST_SIMPLIFY 関数を使用して、ジオメトリデータを簡略化してサイズを減らすことができます。 (巨大なジオメトリデータは、描画のパフォーマンスにも影響を与えるため、必要最低限のサイズに簡略化することをお勧めします)

SELECT
  * EXCEPT (county_geom),
  ST_ASGEOJSON(ST_SIMPLIFY(county_geom, 1000)) AS county_geom
FROM
  `bigquery-public-data.geo_us_boundaries.counties`
WHERE
  state_fips_code = '36'  -- New York

利用上の制限

地図チャートはWebGLを利用して地図を描画しているため、以下の制限があります。

  • WebGLが利用できないブラウザでは描画できません

  • WebGLのコンテキスト数の制限により、多数の地図チャートを同時に描画しようとすると、先に描画したチャートの表示が破棄される場合があります

    • 再描画を行えば再表示されますが、1ページあたりの地図チャートの数が増えすぎないように注意してください

最終更新

役に立ちましたか?