国土地理院 (GSI) の地図タイルと Leaflet.js を使用して、インタラクティブな地図を簡単に作成できる軽量なJavaScriptライブラリです。
- シンプルで軽量: わずか数行のコードで、インタラクティブな地図をすばやく埋め込むことができます。
- 地理院地図: 国土地理院が提供する、美しく詳細な地図タイルを利用しています。
- 簡単なマーカー追加: 1つのヘルパー関数で、カスタムアイコンやポップアップマーカーを追加できます。
- オープンデータ対応: SPARQLエンドポイントからデータを取得して表示するためのヘルパー(
sparql.js)が含まれています。 - モダンなJavaScript: ESモジュール(
egmap.mjs)としても利用可能です。
まず、地図を表示するための <div> を作成します。次に、Leaflet と egmapjs の CSS および JavaScript ファイルを読み込みます。
<!-- 1. 地図コンテナを作成 -->
<div id="mapid" style="height: 400px;"></div>
<!-- 2. Leaflet.js を読み込む -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.4.0/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"></script>
<!-- 3. egmapjs を読み込む -->
<script src="https://code4fukui.github.io/egmapjs/egmap.js"></script>JavaScriptを使用して地図を初期化し、表示位置を設定してマーカーを追加します。
// 'mapid' の div に地図を初期化
const map = initMap('mapid');
// ズームレベルを16に設定し、鯖江駅を表示
map.setZoom(16);
map.panTo([35.943560, 136.188917]);
// 「Hana道場」のカスタムアイコンを追加
map.addIcon(
35.944571, // 緯度
136.186228, // 経度
"Hana道場", // ポップアップテキスト
"icon/hanadojo.png", // アイコン画像のURL(任意)
64 // アイコンの幅(任意)
);同梱されている sparql.js ヘルパーを使用すると、オープンデータを地図上に簡単にプロットできます。
-
HTMLにスクリプトを読み込みます:
<script src="https://code4fukui.github.io/egmapjs/sparql.js"></script>
-
SPARQLクエリを記述し、
querySPARQLを使用して結果を地図に追加します:// 公共WiFiスポットを検索するSPARQLクエリ const query = ` PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> SELECT ?name ?lat ?lng WHERE { ?uri a <http://purl.org/jrrk#PublicWIFI>; rdfs:label ?name; geo:lat ?lat; geo:long ?lng. } LIMIT 100`; querySPARQL(query, (data) => { const items = data.results.bindings; for (const item of items) { map.addIcon(item.lat.value, item.lng.value, item.name.value); } });
モダンなWeb開発向けに、ESモジュール版も利用可能です。
import { initMap, L } from "https://code4fukui.github.io/egmapjs/egmap.mjs";
const map = initMap('mapid');
map.setView([35.94, 136.18], 15);
map.addIcon(35.944, 136.186, "Hana道場");egmapjsで実現できることを確認できる、充実したチュートリアルとライブデモを用意しています。
- すべてのチュートリアルを見る: 基本的な地図、SPARQL、GPS、経路探索などを網羅しています。
- ライブデモ:
このライブラリは 国土地理院 (GSI) の地図タイルを使用しています。利用の際は適切なクレジット表記(出典の明記)を維持してください。
このプロジェクトは Creative Commons Attribution 4.0 International License (CC BY 4.0) のもとでライセンスされています。
