keichan34 / japanmesh

地域メッシュのコードと緯度経度の変換ユーティリティ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

japanmesh

test npm version MIT License

About

JIS 規格で定められている地域メッシュを扱うためのユーティリティです。
JISX0410 の仕様に準拠しており、地域メッシュコード、緯度経度の相互変換がおこなえます。

地域メッシュの区分は下記の通りです。

レベル 区画の種類 一辺の長さ コード桁数 コード例
80000 第 1 次地域区画 約 80km 4 桁 5339
10000 10 倍地域メッシュ (第 2 次地域区画) 約 10km 6 桁 533945
5000 5 倍地域メッシュ 約 5km 7 桁 5339452
2000 2 倍地域メッシュ 約 2km 9 桁 (末尾 5 固定) 533945465
1000 基準地域メッシュ(第 3 次地域区画) 約 1km 8 桁 53394529
500 2 分の 1 地域メッシュ 約 500m 9 桁 533945292
250 4 分の 1 地域メッシュ 約 250m 10 桁 5339452922
125 8 分の 1 地域メッシュ 約 125m 11 桁 53394529221

Installation

$ npm install japanmesh

Usage

import { japanmesh } from 'japanmesh'

or

const { japanmesh } = require('japanmesh')

japanmesh.toCode(lat, lng, [level])

指定した緯度経度(WGS84)から、地域メッシュコードを取得します。

japanmesh.toCode(35.70078, 139.71475, 1000)
=> '53394547'

japanmesh.toLatLngBounds(code)

指定した地域メッシュコードから、緯度経度の境界オブジェクトを取得します。

const bounds = japanmesh.toLatLngBounds('53394547')

bounds.getCenter() // 境界の**座標
=> { lat: 35.704166666666666, lng: 139.71875 }

bounds.getNorthEast() // 境界の北東座標
=> { lat: 35.70833333333333, lng: 139.725 }

bounds.getNorthWest() // 境界の北西座標
=> { lat: 35.70833333333333, lng: 139.7125 }

bounds.getSouthWest() // 境界の南西座標
=> { lat: 35.699999999999996, lng: 139.7125 }

bounds.getSouthEast() // 境界の南東座標
=> { lat: 35.699999999999996, lng: 139.725 }

bounds.contains({ lat: 35.70416666, lng: 139.71875 }) // 境界内か否か
=> true

japanmesh.toGeoJSON(code, [properties])

指定した地域メッシュコードから、ポリゴンデータ(GeoJSON)を取得します。

japanmesh.toGeoJSON('53394547')
=>
{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [139.725, 35.70833333333333],
        [139.7125, 35.70833333333333],
        [139.7125, 35.699999999999996],
        [139.725, 35.699999999999996],
        [139.725, 35.70833333333333]
      ]
    ]
  }
}

japanmesh.getLevel(code)

指定した地域メッシュコードのレベルを取得します。

japanmesh.getLevel('53394547')
=> 1000

japanmesh.getCodes([code], [level])

指定した地域メッシュコード内の該当レベルの地域メッシュコードを取得します。
code, level 未指定時は第 1 次地域区画の地域メッシュコードを取得します。

japanmesh.getCodes('53394547', 500)
=> [ '533945471', '533945472', '533945473', '533945474' ]

Reference

https://www.stat.go.jp/data/mesh/pdf/gaiyo1.pdf

License

This project is licensed under the terms of the MIT license.

About

地域メッシュのコードと緯度経度の変換ユーティリティ

License:MIT License


Languages

Language:TypeScript 98.4%Language:JavaScript 1.6%