npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jp-local-gov

v2.0.1

Published

Data and utilities for Japanese prefectures, electoral districts, municipality codes, and mesh codes.

Downloads

3,546

Readme

jp-local-gov

pnpm install jp-local-gov

機能一覧

都道府県

isPrefectureId('tokyo') // true

getPrefectureInfoById('osaka') // { id: 'osaka', name: '大阪府', shortName: '大阪', website: 'https://www.pref.osaka.lg.jp/', adjacentPrefectureIds: ['kyoto', 'hyogo', 'nara', 'wakayama'] }
getPrefectureInfoByName('大阪府') // { id: 'osaka', name: '大阪府', shortName: '大阪', website: 'https://www.pref.osaka.lg.jp/', adjacentPrefectureIds: ['kyoto', 'hyogo', 'nara', 'wakayama'] }
getPrefectureInfoByName('大阪')   // { id: 'osaka', name: '大阪府', shortName: '大阪', website: 'https://www.pref.osaka.lg.jp/', adjacentPrefectureIds: ['kyoto', 'hyogo', 'nara', 'wakayama'] }

// comparePrefectureIds は sort の比較関数として使用 (北海道から沖縄の順)
['okinawa', 'tokyo', 'hokkaido'].sort(comparePrefectureIds) // ['hokkaido', 'tokyo', 'okinawa']
  • prefectureInfos: 全都道府県の情報一覧
  • PrefectureId: 各都道府県が定めるローマ字表記をもとに当ライブラリが定めた都道府県の ID (例: 'hokkaido', 'tokyo')

衆議院

各都道府県の、衆議院の小選挙区の数や、所属する比例代表ブロックとその定数などを扱います。数字は公職選挙法の改正により頻繁に変化するため、date 引数に 'YYYY-MM-DD' 形式の文字列を渡す必要があり、指定した日付時点で選挙が行われた場合の結果を取得できます。

isShuHireiBlockId('kinki') // true

getShuHireiBlockName('kinki') // '近畿'
getShuHireiBlockId('近畿') // 'kinki'
getShuHireiBlockPrefectures('kinki') // ['shiga', 'kyoto', 'osaka', 'hyogo', 'nara', 'wakayama']
getShuHireiBlockForPrefecture('osaka') // { id: 'kinki', name: '近畿', prefectures: ['shiga', 'kyoto', 'osaka', 'hyogo', 'nara', 'wakayama'] }

getShuDistrictCounts('2026-01-01').tokyo // 30
getShuHireiBlockSeatCounts('2026-01-01').tokyo // 19
  • shuElections: 現制度 (小選挙区比例代表並立制) で行われてきた衆議院議員総選挙の一覧
  • shuHireiBlocks: 比例ブロックの一覧
  • shuDistrictCounts1994 / 2002 / 2013 / 2017 / 2022: YYYY年に施行された改正公職選挙法による都道府県ごとの小選挙区の数
  • shuHireiBlockSeatCounts1994 / 2000 / 2002 / 2017 / 2022: YYYY年に施行された改正公職選挙法による比例ブロックごとの定数
  • ShuHireiBlockId: 当ライブラリが定めた比例ブロックの ID ('hokkaido', 'tohoku', 'kitakanto', 'minamikanto', 'tokyo', 'hokurikushinetsu', 'tokai', 'kinki', 'chugoku', 'shikoku', 'kyushu')

参議院

参議院の各選挙区の定数などの情報を扱います。参議院の選挙区は概ね都道府県ベースですが、2015年に「合区」が導入されて以降は都道府県と一致しておらず、将来的にさらに合区が増える可能性があるため、date 引数に 'YYYY-MM-DD' 形式の文字列を渡す必要があり、指定した日付時点で選挙が行われた場合の結果を取得できます。

getSanDistrictName('tottori-shimane', '2025-07-01') // '鳥取県・島根県'
getSanDistrictSeats('tokyo', '2025-07-01') // 6

// compareSanDistrictIds は sort の比較関数として使用
['okinawa', 'hokkaido', 'tokyo'].sort(compareSanDistrictIds('2025-07-01')) // ['hokkaido', 'tokyo', 'okinawa']
  • sanDistricts2015: 2015年に施行された改正公職選挙法による選挙区の一覧
  • SanDistrictId2015: 当ライブラリが定めた選挙区の ID (基本的に上述の都道府県 ID であり、合区の場合は日本産業規格で定められた順でハイフンで繋げたもの)

全国地方公共団体コード

総務省が定めている「全国地方公共団体コード」のための機能群です。JIS X 0401 で定められている2桁の都道府県コード、JIS X 0402 で定められている3桁の市区町村コードと、検査数字1桁から成ります。

calculateCheckDigit('27000') // 8
hasValidCheckDigit('270008') // true

findByCode('270008') // { type: 'prefecture', code: '270008', prefectureName: '大阪府', prefectureRuby: 'おおさかふ' }
findByCode('271004') // { type: 'municipality', code: '271004', prefectureName: '大阪府', municipalityName: '大阪市', municipalityRuby: 'おおさかし' }
findByCode('271021') // { type: 'designated-city-ward', code: '271021', prefectureName: '大阪府', municipalityName: '大阪市', cityName: '大阪市都島区', cityRuby: 'おおさかしみやこじまく' }
findByCode('27000')  // 検査数字なしの5桁でも可

searchByName('大阪府')                                // [{ type: 'prefecture', ... }]
searchByName('府中市')                                // 東京都・広島県の2件
searchByName('府中市', { prefectureName: '東京都' }) // 1件に絞り込み
searchByName('大阪', { partial: true })               // 部分一致
  • calculateCheckDigit(code): 5桁のコードから検査数字を計算します
  • hasValidCheckDigit(code): 6桁のコードの検査数字が正しいか検証します
  • findByCode(code, options?): 5桁または6桁のコードからエントリを返します。存在しない場合は undefined
  • searchByName(name, options?): 名前 (漢字またはひらがなのルビ) でエントリを検索します
    • prefectureName: 都道府県名で絞り込み
    • partial: true にすると部分一致検索
    • excludeDesignatedCityWards / excludeMunicipalities / excludePrefectures: 対象種別の除外
  • Prefecture / Municipality / DesignatedCityWard: 各エントリの型

利用データ

  • 2024年 (令和6年) 1月1日更新 (000925835)

これ以前のデータには現時点で対応していません。

地域メッシュコード

JIS X 0410 で定められている「地域メッシュコード」のための機能群です。業界でみられる様々な非標準拡張にも対応しています。

coordinateToMeshCode(coordinate, resolution): string

座標をメッシュコードに変換します。

第1引数には座標を [緯度, 経度] もしくは [経度, 緯度] の形式で与えます。

座標の緯度経度をどの順番で指定するかは大きなサービス間でもはっきりと統一されていません。ISO 6709 では [緯度, 経度] の順と定義されており、Google Maps や JIS X 0410 など、この順番を遵守しているものがやや多い印象ですが、たとえば GeoJSON (RFC 7841) では [経度, 緯度] の順で座標を記述します。「地域メッシュコード」は日本国土のみ (北緯24 - 46度、東経122 - 149度範囲) を対象としているため、幸い順番の推測が可能ですから、このライブラリは両方の順番に対応しています。

第2引数には所望のメッシュ種類を指定します。

| 引数 | JIS X 0410 での定義 | 1辺のおおよその距離 | よく使われている名称 | 使用されている箇所の例 | | --- | --- | --- | --- | --- | | JIS-1, 1, 80km | 「基準地域メッシュコード」のはじめ4桁の「第1次地域区画を示す数字」 | 80 km | 1次メッシュコード | 国勢調査 | | JIS-2, JIS-3-x10, 2, 10km | 「基準地域メッシュコード」のはじめ6桁の「第2次地域区画を示す数字」、あるいは「統合地域メッシュコード」の「10倍地域メッシュコード」 | 10 km | 2次メッシュコード | 国勢調査 | | JIS-3-x5, 5km | 「統合地域メッシュコード」の「5倍地域メッシュコード」 | 5 km | | | | JIS-3-x2, 2km | 「統合地域メッシュコード」の「2倍地域メッシュコード」 | 2 km | | | | JIS-3, 3, 1km | 「基準地域メッシュコード」 (「第3次地域区画を示す数字」) | 1 km | 3次メッシュコード | 国勢調査 | | JIS-3-1/2, 4, 500m | 「分割地域メッシュコード」の「2分の1地域メッシュコード」 | 500 m | 4次メッシュコード | 国勢調査 | | JIS-3-1/4, 5, 250m | 「分割地域メッシュコード」の「4分の1地域メッシュコード」 | 250 m | 5次メッシュコード | 国勢調査 | | JIS-3-1/8, 125m | 「分割地域メッシュコード」の「8分の1地域メッシュコード」 | 125 m | | | | 100m | なし | 100 m | | 国土数値情報「土地利用細分メッシュデータ」 |