国土地理院の境界データ(Shapefile)と Excel の世帯数データを使い、Mapbox で目黒区・大田区の町丁エリアと合計世帯数を表示する地図です。
- Node.js 18+
- Mapbox のアクセストークン(無料で取得可能)
npm installnpm run buildgeojson/meguro-chome-areas.json… 目黒区の町丁ポリゴン(GML から変換)geojson/chome-households.json… 町丁ごとの座標・合計世帯数・共同住宅世帯数(Excel と CommPt をマージ)geojson/meguro-shapefile-areas.json… 境界データ(Shapefile)から変換した町丁ポリゴン(npm run build:shapefileで生成。A002005212020DDSWC13110-JGD2011/に r2ka13110.* が必要)
config.js.exampleをconfig.jsにコピー- MAPBOX_ACCESS_TOKEN … 地図表示用。Mapbox で取得
- GOOGLE_MAPS_API_KEY … 演説スポットのジオコーディング用。Google Cloud で Geocoding API を有効にし、API キーを発行
cp config.js.example config.js
# config.js を編集して MAPBOX_ACCESS_TOKEN と GOOGLE_MAPS_API_KEY を設定ローカルで HTTP サーバーを起動して開いてください(ファイルを直接開くと CORS で GeoJSON が読めません)。
npx serve .ブラウザで http://localhost:3000 を開きます。
- 町丁ポリゴン: 目黒区の町丁境界を色付きで表示
- 合計世帯数: 各町丁の代表位置に合計世帯数を表示(最低条件)
- 円グラフ表示(理想): チェックボックスで「円グラフ表示」をオンにすると、共同住宅 3~5階建 / 6~10階建 の内訳を円グラフで表示し、ラベルに合計世帯数を表示
- クリック: 町丁をクリックするとポップアップで町丁名・合計世帯数・共同住宅世帯数を表示
A002005212020DDSWC13110-JGD2011/… 境界データ(Shapefile)目黒区 13110、r2ka13110.shp 等A002005212020DDSWC13111-JGD2011/… 境界データ(Shapefile)大田区 13111、r2ka13111.shp 等megurobilding.xlsx… 目黒区の町名・共同住宅世帯数・合計世帯数の Excelotabilding.xlsx… 大田区の町名・共同住宅世帯数・合計世帯数の Excelscripts/… Shapefile 変換・Excel マージ用スクリプトgeojson/… 変換結果の GeoJSON / JSON(公開時はこのフォルダ一式をアップロード)index.html… Mapbox 地図ページconfig.js… Mapbox トークン(要自前作成。.gitignoreで除外)
npm run build:gml… GML から目黒区町丁ポリゴンと CommPt を生成npm run build:excel… Excel と CommPt をマージして chome-households.json を生成npm run build:excel:ota… 大田区 Excel から chome-households-ota.json を生成npm run build:shapefile… 目黒区 Shapefile から meguro-shapefile-areas.json を生成npm run build:shapefile:ota… 大田区 Shapefile から ota-shapefile-areas.json を生成npm run build:speech-spots… 演説スポット CSV を Google Geocoding API でジオコーディングして speech-spots.json を生成(config.js に GOOGLE_MAPS_API_KEY が必要。先に build:shapefile / build:shapefile:ota を実行すること)npm run build… build:gml と build:excel を実行
DEPLOY.md に手順があります。
- このプロジェクトを GitHub にプッシュ(
geojson/フォルダもコミット。config.jsは コミットしない)。 - リポジトリ Settings → Secrets and variables → Actions で、シークレット
MAPBOX_ACCESS_TOKENを追加(値は Mapbox で取得したトークン)。 - Settings → Pages で Source を GitHub Actions に設定。
mainにプッシュすると自動デプロイされ、https://<username>.github.io/<リポジトリ名>/で表示されます。
※ トークンには Mapbox で「URL 制限」を設定することを推奨。Netlify / Vercel などは DEPLOY.md を参照。