国土数値情報の境界・施設データは GEOMETRY 型の列を持ち、DuckDB の spatial 拡張で扱えます。「この緯度経度はどの市区町村か」という逆ジオコーディングや、境界ポリゴンと施設ポイントの掛け合わせが SQL だけで完結します。
手元の DuckDB で実行する場合は、最初に spatial 拡張をロードしてください(ブラウザ上では自動でロードされます)。
INSTALL spatial;
LOAD spatial;
boundary.municipality は全国の市区町村境界(政令指定都市は区単位、全1,898件)を持ちます。ST_Contains で点を含むポリゴンを探せば、緯度経度から市区町村を特定できます。座標は ST_Point(経度, 緯度) の順で指定します。
東京駅の座標を渡すと千代田区(13101)が返ります。lg_code は5桁の市区町村コードなので、そのまま統計データセットとの結合キーになります。
施設ポイントを市区町村ポリゴンで空間結合すれば、「エリア内に何があるか」を数えられます。千代田区内の学校を数えてみます。
facility.school のように市区町村コード(admin_code)を持つテーブルなら普通の JOIN で足りますが、コード列を持たない位置データ(自社の店舗リスト、GPS ログなど)でも、この空間結合パターンならそのまま集計できます。
ST_AsGeoJSON でジオメトリを GeoJSON 文字列に変換できます。ポリゴンの重心なら出力も小さく、地図ライブラリへピンを渡す用途に便利です。
境界ポリゴンをファイルとして書き出したい場合は、手元の DuckDB で GDAL 経由の COPY を使います。書き出した GeoJSON は Leaflet や MapLibre、QGIS でそのまま読めます。
COPY (
SELECT city_name, ward_name, geometry
FROM nlftp.boundary.municipality
WHERE prefecture_code = '13'
) TO 'tokyo.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON');
ST_Point(緯度, 経度) と逆に書くと何もヒットしませんprefecture_code や lg_code で絞ってから空間条件を使うのが基本です
津波浸水想定区域と500m四方の将来推計人口を重ねました。28道府県の区域内に住む人は2050年までに17.6%減り、65歳以上は4.6%増えます。

過疎地域に指定された816市町村の区域と、国勢調査の人口集中地区を重ねました。全域が指定された83市町村には市街地があり1,532,897人が住み、京都市は市域の26.3%が過疎地域です。

2020年の国勢調査で派遣社員152万人を市区町村別に数えました。割合が最も高いのは工場のある町ですが、工場のない東京の通勤圏でも全国平均を上回り、派遣で働く人の女性割合は製造業の集積で48.4%から65.0%まで開きます。

全国333の区域で65歳以上の人数を2025年と2050年で数えると、213区域(64.0%)で減ります。同じ千葉県に+32.4%と−23.7%が並びます。