地図を、
HTML 2 行から。

Geolonia Maps — 日本の Web サイトとアプリのための
MapLibre GL JS 互換 地図ライブラリ

embed maps-suite maps-react MapLibre GL JS 互換
Company

会社概要

商号株式会社 Geolonia(Geolonia Inc.)
親会社ジオテクノロジーズ株式会社(GeoTechnologies, Inc.)
設立2019年8月
資本金67,022千円(資本準備金 45,010千円)
本社所在地〒113-0021 東京都文京区本駒込二丁目28番8号
役員
  • 代表取締役CEO 宮内 隆行
  • 取締役公共政策担当 関 治之
  • 取締役 西川 伸一
  • 社外取締役 八剱 洋一郎
  • 社外取締役 但馬 一幸
  • 社外取締役 足立 圭介
  • 社外取締役 藤田 博昭
  • 社外取締役 藤倉 庸子
  • 社外監査役 中瀬 美明
従業員数27名
主な納入先・実績
  • デジタル庁
  • 国土交通省
  • 国土地理院
  • NHK
  • ソフトバンク株式会社
  • 株式会社竹中工務店
  • 高松市
  • 焼津市
  • 那須塩原市
  • 延岡市
  • 鳥取県
政府の取り組みへの貢献
  • 空間ID(経済産業省 / DADC)
    ID 付与のための計算式の考案、共通ライブラリの無償提供
  • スマートシティリファレンスアーキテクチャ(内閣府)
    地理空間情報連携基盤の仕様策定、SCRA 第3版〜第5版の執筆
Summary

Web に地図を載せる、いちばん短い道

Geolonia Maps は、Web サイトやアプリに地図を組み込むためのライブラリ群です。すべて MapLibre GL JS の上に作られていて、HTML だけの手軽さから、React での本格的なアプリ開発まで同じ地図で対応します。

HTML だけで地図 <div> と <script> の 2 行で地図が出ます。ビルドツールも npm もいりません。位置・マーカー・データは data-* 属性で書くだけ。
オープンな標準 API 中身は世界中で使われている MapLibre GL JS。独自 API に閉じ込めないので、知識も既存コードもそのまま活かせます。Google Maps からの移行も想定済み。
日本のための地図 日本語ラベル、国土地理院ベクトルタイルを使ったスタイル、3D 建物、住所の正規化まで。日本の Web 制作で必要になるものを最初から揃えています。
Libraries

3 つのライブラリ、1 つの地図

embed HTML だけ・ビルド不要 <div> の data-* 属性で宣言的に設定。CMS やペライチの Web ページに地図を貼るならこれ。
<div class="geolonia" data-zoom="14"></div>
maps-suite npm + JavaScript Map・Marker・InfoWindow を命令的に操作。Google Maps に慣れた人がそのまま書けるクラス構成。
new geolonia.maps.Map(el, { apiKey })
maps-react npm + React Map・Source・Layer・Marker をコンポーネントとして宣言。state と自然につながります。
<Map apiKey="…" zoom={14} />
@geolonia/maps-core GeoloniaMap は MapLibre GL JS の Map を継承。API キー・スタイル名の解決・既定のコントロールを担う共通基盤
MapLibre GL JS オープンソースのベクトルタイル描画エンジン。flyTo()・addLayer()・on() など、どのライブラリからでも全機能に届く
LIVE
embed

必要なのは 2 つのタグだけ

class="geolonia" の <div> が地図になり、CDN の <script> がページ内のそれを探して描画します。<div> の中に書いた HTML はマーカーのポップアップに。右の地図は、左のコードそのままで動いています。


            

ピンをクリックするとポップアップが開きます。data-gesture-handling="off" は地図が画面を占めるページ向けの設定(既定 on は Ctrl / 2 本指で操作)。

東京駅
JR・地下鉄各線
maps-suite

Google Maps に慣れた手で、そのまま書ける

main.js npm install @geolonia/maps-suite maplibre-gl
  • Map / Marker / InfoWindow の「地図を作って、メソッドを呼ぶ」書き方
  • MarkerClusterer、Polyline・Polygon・Circle、Map.data レイヤーまで揃った構成
  • <geolonia-map> カスタム要素で、HTML タグだけでも置ける
  • map.getGeoloniaMap() で MapLibre GL JS の API にそのまま届く
移行はエージェントに任せられる Claude Code 用の geolonia-google-maps-migration スキルが、google.maps.* → geolonia.maps.* の対応表と手順を持っています。
maps-react

地図も React のコンポーネントとして

App.jsx npm install @geolonia/maps-react maplibre-gl
  • Marker の子要素がポップアップになる。JSX なのでコンポーネントも入れられる
  • 配列を map() するだけでデータ駆動のマーカーに
  • Source と Layer には MapLibre のソース・レイヤー定義をそのまま渡す
  • onClick・onMoveEnd・onLoad など地図イベントは props で受け取る
props はほぼ maps-core と同じ GeoloniaMapOptions(= MapLibre の MapOptions + Geolonia の拡張)から container を除いたものが、そのまま Map の props です。
Concept

データと見た目を分ける、ベクトルタイル

Vector tiles 絵ではなく、データを配る 地図を正方形のタイルに分け、必要な範囲だけを配信します。中身は「これは道路」というデータそのものなので、拡大してもぼやけず、見た目は後から変えられます。
Style 見た目は JSON 1 枚 海の色、道路の太さ、駅名をどのズームから出すか。描画ルールを style.json にまとめます。geolonia/basic-v2 は 139 のレイヤーでできています。
MapLibre Style Spec 独自形式ではない スタイルの形式は MapLibre Style Spec。Maputnik などのエディタも、MapLibre 向けの資料も、そのまま使えます。困ったら「MapLibre ならどう書くか」で調べれば答えが見つかります。
同じデータから、明るい地図も暗い地図も。見た目だけを差し替えるので、データの再取得は不要
Freshness

迅速更新:地図はいつも新しい

道路が開通した、お店ができた。現地の変化が、短い周期で地図に反映されます。

OpenStreetMap · 日本 3時間ごと 日本のエリアは1 日 8 回更新。OpenStreetMap に書き込まれた変化が、数時間で地図に届きます。
OpenStreetMap · 世界 1か月ごと 日本以外の地域(世界全体)は毎月更新。海外の拠点や旅行先の地図も最新の状態に保ちます。
地理院地図 ベクトルタイル 3か月ごと 国土地理院のベクトルタイルは3 か月に 1 回更新。公的な基盤地図の内容を定期的に取り込みます。
更新されたデータは、同じ API キー・同じコードのまま地図に反映されます
Styles

公式スタイルは 名前を書くだけで切り替え

embed なら data-style="geolonia/midnight"、maps-suite / maps-react なら style オプション。外部の style.json の URL も指定できます。

geolonia/basic-v2

標準スタイル。省略時はこれ。OpenStreetMap ベース

geolonia/gsi

国土地理院のベクトルタイル。地理院地図に近い表現

geolonia/midnight

濃紺ベースのダーク。暗い画面や色の強いデータの下地に

geolonia/red-planet

暗い赤をベースにしたスタイル

geolonia/notebook

白ベースの淡いスタイル。重ねたデータを主役にしたいときに

geolonia/homework

Natural Earth の世界地図。国境と国名中心の 9 レイヤー

geoloniamaps/smartcity-base

国土地理院の最適化ベクトルタイルを PMTiles 形式で読む

https://…/style.json

外部・自作スタイル。Geolonia 以外のタイルなら API キー不要

各スタイルに日本語版と英語版があり、data-lang(ja / en / auto)で切り替わります。ライブデモで実際に切り替えられます。

API key

まず動かして、公開するときにキー

1 デモキーで試す YOUR-API-KEY はキー発行なしで使えるデモキー。許可済みの開発・プレビュー環境でだけ地図が出ます。
localhost*.github.iocodepen.io*.netlify.app*.vercel.app*.pages.dev
2 本番キーを発行 app.geolonia.com でキーを作り、公開する URL を登録。スキーム・ホスト名・ポートまで一致で判定します。
3 キーを差し替えて公開 変えるのは YOUR-API-KEY の部分だけ。embed はビルド不要なので、HTML を静的ホスティングに置けば公開完了です。

保存した HTML をダブルクリックで開く(file://)とデモキーでは表示されません。npx serve や python3 -m http.server で localhost として開きます。このデッキ自体もデモキーで動いています。

デモキーは「試す」ため、本番キーは「公開する」ため。順番を逆にしなくていい
Geolonia CLI

API キーの設定を YAML で管理する

  • 地図を描く前の準備と運用を担う公式ツール
  • キーの作成、許可オリジンの追加・削除、pull → plan → apply で差分を見てから反映
  • 現在のプラン・今月の地図表示回数・上限を、ダッシュボードを開かずに確認
  • generate-access-token で CI からも使える
手順を再現可能に ダッシュボードでもできることを、ファイルとレビューの流れに乗せられるのが CLI の役割です。
AI

地図のコードは、AI エージェントに

Geolonia Agent Skills は、Claude Code に Geolonia Maps の正しい書き方を教えるプラグインです。

  • 古い CDN パスや廃止スタイル名を書いてしまう、学習時点の知識のズレを防ぐ
  • maps:embed・JavaScript API・ジオコーディング・スタイル
  • geolonia-google-maps-migration:Google Maps からの移行手順と対応表
  • 必要なときだけ参照ファイルを読む構成で、毎回プロンプトに貼らなくていい
Prompt 「Geolonia Maps で東京タワーにマーカーを置いた地図を作って」 必要なスキルはエージェントが自分で読み込みます

このライブデッキも、Claude Code で作りました。

LIVE DEMO

さわって確かめる

ここから先の地図は、すべて実際に動いています。
embed v6.0.1 + デモキー YOUR-API-KEY

LIVE
Live · View

視点はすべて data-* 属性で決まる

スライダーを動かすと地図とコードが同時に変わります。地図をドラッグ・回転すると、その視点を再現するコードが左に出ます。


          
LIVE
Live · Style

同じ場所を、違う見た目で

スタイル名を変えるだけで地図全体の見た目が入れ替わります。実行時は map.setStyle("geolonia/gsi") のように、論理名のまま差し替えられます。


          
LIVE
Live · Data

GeoJSON の URL を書けば、データが載る

data-geojson に 400 地点の GeoJSON を指定しています。marker-color・marker-symbol・title などの simplestyle プロパティがそのまま見た目とポップアップになります。


            
          
デモ用の合成データです(実在の施設ではありません)
LIVE
Live · 3D

data-3d="on" で、街が立ち上がる

3D の建物は Geolonia の標準スタイルに最初から入っています。形と高さはベクトルタイルから来るので、用意するデータはありません。視点を傾けるだけです。


            
          
LIVE
Live · Viz

属性 1 つで、データを塗り分ける

data-choropleth・data-heatmap・data-circle-* に GeoJSON のプロパティ名を書くだけで、コロプレス・ヒートマップ・データ駆動の円が描けます。JavaScript は要りません。


          
LIVE
Live · Globe

引いて見れば、地球儀になる

投影法を globe にすると、縮小時は地球儀、拡大すると通常の地図へなめらかにつながります。embed v6 は MapLibre GL JS v6 を同梱しています。

embed のバージョン: —

LIVE
Live · Geocoding

住所の表記ゆれを吸収して、場所を出す

@geolonia/normalize-japanese-addresses は住所を正規化し、その地点の緯度経度も返します。漢数字・旧字体・「丁目」の省略などの揺れを吸収します。


          
PRICING

無料で始める

月 20,000 回までは Free プランで 0 円。
料金プランと始め方

Pricing

月 20,000 回まで、無料

Free 月額 0 円 地図表示回数は月 20,000 回まで。支払い方法の登録は不要です。API キーの発行とメンバーの追加もできます。
Pro 月額 3,980 円(税込 4,378 円) 月額に 50,000 回まで含まれます。超えた分は右の単価の従量課金で、回数が増えるほど単価が下がります。支払いはクレジットカードです(請求書払いは要相談)。
Pro の従量課金(月の回数)1 回あたり
50,001 〜 100,000 回目0.4 円
100,001 〜 500,000 回目0.3 円
500,001 〜 1,000,000 回目0.225 円
1,000,001 〜 5,000,000 回目0.12 円
5,000,001 回目以降0.06 円

地図表示回数は、地図がユーザーの端末に表示された回数です。ページの下のほうにあって画面に表示されなかった地図は数えません。

金額は税抜です(税込を併記した箇所を除く)。料金は円建てなので、為替が動いても変わりません。

出典: Geolonia Docs の料金ページ。Google Maps や Mapbox からの切り替えは コスト削減診断で、先月の請求額から月額を試算できます。

Pricing

4 ステップで始める

Step 1 デモキーで試す localhost や GitHub Pages などの開発環境・プレビュー環境なら、API キーを発行しなくてもデモキー YOUR-API-KEY で地図を表示できます。この表示は回数に数えません。
Step 2 API キーを発行する ダッシュボード(app.geolonia.com)で API キーを発行します。Free プランは支払い方法の登録なしで使えます。API キーには、地図を表示するサイトの URL を登録します。
Step 3 回数を確かめる チームのオーナーとオペレーターは、今の請求期間の地図表示回数をダッシュボードの「料金プランとお支払い」で確かめられます。回数はおよそ 30 分ごとに更新されます。
Step 4 必要なら Pro へ 月 20,000 回を超えて表示するなら、チームのオーナーがクレジットカードを登録して Pro プランに切り替えます。Free プランに戻すと、その請求期間が終わってから切り替わります。

ページビューから月額の目安を出す方法は 料金の目安にあります。地図のあるページのページビューだけを数えると、見積もりが正確になります。

APPENDIX

付録

embed の data-* 属性一覧・ライブラリごとの対応表・用語集

Reference

embed の主な data-* 属性

属性既定内容
data-lat / data-lng—地図の中心(両方そろったときだけ有効)
data-zoom0ズーム。11 で市全体、14 で地区、16 で建物
data-pitch / data-bearing0傾き / 回転(度)
data-stylebasic-v2スタイル名、または style.json の URL
data-langautoja / en / auto
data-markeron中心のマーカー。子要素がポップアップ
data-marker-color#E4402Fマーカーの色
data-open-popupoff読み込み時にポップアップを開く
属性既定内容
data-geojson—GeoJSON の URL(CSS セレクタも可)
data-clusteron近い点をまとめる
data-3doff3D の建物(Geolonia スタイルのみ)
data-navigation-controlonズーム・回転ボタン(位置も指定可)
data-geolocate-controloff現在地ボタン
data-fullscreen-controloff全画面ボタン
data-scale-controloff縮尺
data-gesture-handlingonCtrl / 2 本指で操作(ページのスクロールを妨げない)

全属性と既定値は EmbedAttributes リファレンス。コントロール系は on / off のほか top-left などの位置も指定できます。

Reference

どのライブラリで、何ができるか

やりたいことembedmaps-suitemaps-react
地図の表示・視点・スタイル・言語data-* 属性オプションprops
GeoJSON の表示・クラスタリングdata-geojsonmap.data / MarkerClustererSource + Layer
複数マーカーにそれぞれポップアップGeoJSON で代替Marker + InfoWindowMarker の子要素
3D の建物data-3d="on"既定で有効{...{ "3d": true }}
コロプレス・ヒートマップdata-choropleth / data-heatmapgetGeoloniaMap()Layer / onLoad
地球儀JS で MapLibre APIgetGeoloniaMap()Layer / onLoad
ビルドツール不要npmnpm + React

embed でも geolonia.Map は MapLibre GL JS の Map なので、JavaScript を書けば全機能に届きます(このデッキの地球儀のデモがその例です)。

Glossary

用語集

MapLibre GL JSベクトルタイルを WebGL で描画するオープンソースの地図ライブラリ。Geolonia Maps の描画エンジン。
ベクトルタイル地図データを座標のまま小さなタイルに分けて配信する方式。拡大しても滑らかで、見た目を後から変えられる。
スタイル(style.json)データの描き方(色・太さ・表示ズーム)を定めた JSON。MapLibre Style Spec に従う。
GeoJSON地理データの標準フォーマット。座標は [経度, 緯度] の順で、data-lat / data-lng とは逆。
simplestyleGeoJSON の properties に marker-color・title などを書いて見た目を指定する約束事。
クラスタリング近くにある多数の点を、ズームに応じて 1 つの丸にまとめて件数で表す表示。
コロプレス人口や売上などの数値を、区域(ポリゴン)の色の濃淡で表す地図。
PMTilesタイル一式を 1 ファイルにまとめ、必要な部分だけを HTTP の範囲リクエストで読む形式。
住所の正規化表記ゆれのある住所を、都道府県・市区町村・町丁目に分解して統一した形にそろえること。
デモキーYOUR-API-KEY。localhost や GitHub Pages などの許可済み環境でだけ地図が出る試用キー。

まずは 2 行、貼ってみてください。

ドキュメント・チュートリアル・How-to はすべて日本語で。
デモキーなら、キーの発行を待たずに今日から試せます。

Geolonia, Inc. · Geolonia Maps

← → / Space で移動 · G で目次 · P で自動再生 · F で全画面