jp-prefecture
Version:
Utility library dealing with prefectures and regions in Japan.
733 lines (488 loc) • 22.8 kB
Markdown
jp-prefecture
=============
[](https://travis-ci.org/tsuyoshiwada/jp-prefecture)
[](https://www.npmjs.com/package/jp-prefecture)
[](https://raw.githubusercontent.com/tsuyoshiwada/jp-prefecture/master/LICENSE)
Utility library dealing with prefectures and regions in Japan.
## Install
### via NPM
```bash
$ npm install jp-prefecture --save
```
#### use
```javascript
var jpPrefecture = require("jp-prefecture");
jpPrefecture.__METHOD__();
```
### via Manual
1. Download the [jp-prefecture.min.js](https://raw.githubusercontent.com/tsuyoshiwada/jp-prefecture/master/jp-prefecture.min.js)
2. Load it in the `script` tag.
```html
<script type="text/javascript" src="jp-prefecture.min.js"></script>
```
#### use
```javascript
jpPrefecture.__METHOD__();
```
### via Bower (deprecated)
Bower is no maintenance.
```bash
$ bower install jp-prefecture --save
```
## Methods
### getAll
#### jpPrefecture.getAll(type, [select])
**type: {String}**
**select: {String | Array}**
**return: {Array}**
Get all regions or prefectures.
```javascript
var results = jpPrefecture.getAll("region");
console.log(results); // [Object, Object, Object ...]
results = jpPrefecture.getAll("pref", "name");
console.log(results); // ["北海道", "青森県", "岩手県", ...]
results = jpPrefecture.getAll("pref", ["id", "name"]);
console.log(results); // [{id:1, name:"北海道"}, {id:2, name:"青森県"}, ...]
```
### getAllRegion
#### jpPrefecture.getAllRegion([select])
**select: {String | Array}**
**return: {Array}**
Alias for `getAll("region")`.
```javascript
var results = jpPrefecture.getAllRegion();
console.log(results); // [Object, Object, Object ...]
results = jpPrefecture.getAllRegion("name");
console.log(results); // ["北海道", "東北", "関東", "中部", "近畿", "中国", "四国", "九州"]
```
### getAllPref
#### jpPrefecture.getAllPref([select])
**select: {String | Array}**
**return: {Array}**
Alias for `getAll("pref")`.
```javascript
var results = jpPrefecture.getAllPref();
console.log(results); // [Object, Object, Object ...]
results = jpPrefecture.getAllPref("name");
console.log(results); // ["北海道", "青森県", "岩手県", "宮城県", ...]
```
### find
#### jpPrefecture.find(type, value, [select])
**type: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
Get the single object of regional or prefectures.
```javascript
var result = jpPrefecture.find("region", "北海道");
console.log(result); // {id:1, name:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]}
result = jpPrefecture.find("region", "北海道", "kana");
console.log(result); // "ホッカイドウ"
result = jpPrefecture.find("region", "北海道", ["id", "kana"]);
console.log(result); // {id:1, kana:"ホッカイドウ"}
result = jpPrefecture.find("pref", "東京都");
console.log(result); // {id:13, region:3, name:"東京都", short:"東京", kana:"トウキョウ", en:"tokyo", neighbor:[11, 12, 14, 19]}
result = jpPrefecture.find("hogefuga", false);
console.log( result ); // undefined
```
### regionFind
#### jpPrefecture.regionFind(value, [select])
**type: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
Get the single object of regional. Alias for `find("region")`.
```javascript
var result = jpPrefecture.regionFind("北海道");
console.log(result); // {id:1, name:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]}
```
### prefFind
#### jpPrefecture.prefFind(value, [select])
**type: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
Get the single object of prefectures. Alias for `find("pref")`.
```javascript
var result = jpPrefecture.prefFind("東京都");
console.log(result); // {id:13, region:3, name:"東京都", short:"東京", kana:"トウキョウ", en:"tokyo", neighbor:[11, 12, 14, 19]}
```
### findBy
#### jpPrefecture.findBy(type, key, value, [select])
**type: {String}**
**key: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
By specifying the key and value, to get a single object of regional.
```javascript
var result = jpPrefecture.findBy("region", "id", 8);
console.log(result); // {id:8, name:"九州", kana:"キュウシュウ", en:"kyusyu", neighbor:[6, 7]}
result = jpPrefecture.findBy("region", "id", 8, "name");
console.log(result); // "九州"
result = jpPrefecture.findBy("region", "en", "chugoku", ["id", "name"]);
console.log(result); // {id:6, name:"中国"}
result = jpPrefecture.findBy("pref", "short", "宮城");
console.log(result); // {id:4, region:2, name:"宮城県", short:"宮城", kana:"ミヤギ", en:"miyagi", neighbor:[3, 5, 6, 7]}
result = jpPrefecture.findBy("hoge", "fuga");
console.log(result); // undefined
```
### regionFindBy
#### jpPrefecture.regionFindBy(key, value, [select])
**key: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
Alias for `findBy("region")`.
```javascript
var result = jpPrefecture.regionFindBy("id", 8);
console.log(result); // {id:8, name:"九州", kana:"キュウシュウ", en:"kyusyu", neighbor:[6, 7]}
```
### prefFindBy
#### jpPrefecture.prefFindBy(key, value, [select])
**key: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
Alias for `findBy("pref")`.
```javascript
var result = jpPrefecture.prefFindBy("id", 8);
console.log(result); // {id:8, region:3, name:"茨城県", short:"茨城", kana:"イバラキ", en:"ibaraki", neighbor:[7, 9, 11, 12]}
```
### regionFindByPref
#### jpPrefecture.regionFindByPref(value, [select])
**value: {Any}**
**select: {String | Array}**
**return: {Object}**
Get the region corresponding from prefectures.
```javascript
var result = jpPrefecture.regionFindByPref("東京");
console.log(result); // {id: 3, name: "関東", kana: "カントウ", en: "kanto", neighbor: Array[2]}
result = jpPrefecture.regionFindByPref("fukuoka", "name");
console.log(result); // "九州"
result = jpPrefecture.regionFindByPref("hoge");
console.log(result); // undefined
```
### prefFindByRegion
#### jpPrefecture.prefFindByRegion(value, [select])
**value: {Any}**
**select: {String | Array}**
**return: {Array}**
Get the prefectures corresponding from region.
```javascript
var results = jpPrefecture.prefFindByRegion("関東");
console.log(results); // [Object, Object, Object ...]
results = jpPrefecture.prefFindByRegion("関東", "name");
console.log(results); // ["茨城県", "栃木県", "群馬県", "埼玉県", "千葉県", "東京都", "神奈川県"]
results = jpPrefecture.prefFindByRegion("hoge", "fuga");
console.log(results); // undefined
```
### where
#### jpPrefecture.where(type, attrs, [select])
**type: {String}**
**attrs: {Object}**
**select: {String | Array}**
**return: {Array}**
Get the regional or province apply to the given conditions.
The return value is returned always an array.
```javascript
var results = jpPrefecture.where("region", {id:1});
console.log(results); // [{id:1, name:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]}]
results = jpPrefecture.where("region", {id:1}, "name");
console.log(results); // ["北海道"]
results = jpPrefecture.where("pref", {region:3}, "name");
console.log(results); // ["茨城県", "栃木県", "群馬県", "埼玉県", "千葉県", "東京都", "神奈川県"]
results = jpPrefecture.where("hoge", null);
console.log(results); // []
```
### regionWhere
#### jpPrefecture.regionWhere(attrs, [select])
**attrs: {Object}**
**select: {String | Array}**
**return: {Array}**
Alias for `where("region")`.
```javascript
var results = jpPrefecture.regionWhere({id:1});
console.log(results); // [{id:1, name:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]}]
```
### prefWhere
#### jpPrefecture.prefWhere(attrs, [select])
**attrs: {Object}**
**select: {String | Array}**
**return: {Array}**
Alias for `where("pref")`.
```javascript
var results = jpPrefecture.prefWhere({region:3});
console.log(results); // ["茨城県", "栃木県", "群馬県", "埼玉県", "千葉県", "東京都", "神奈川県"]
```
### convert
#### jpPrefecture.convert(type, value, key)
**type: {String}**
**value: {Any}**
**key: {String}**
**return: {Any}**
Conversion from the specified value of the region or province to another key.
```javascript
var result = jpPrefecture.convert("region", "関東", "en");
console.log(result); // "kanto"
result = jpPrefecture.convert("region", "中国", "kana");
console.log(result); // "チュウゴク"
result = jpPrefecture.convert("pref", "ヒョウゴ", "name");
console.log(result); // "兵庫県"
result = jpPrefecture.convert("hoge", "fuga");
console.log(result); // undefined
```
### regionConvert
#### jpPrefecture.regionConvert(value, key)
**value: {Any}**
**key: {String}**
**return: {Any}**
Alias for `convert("region")`.
```javascript
var result = jpPrefecture.regionConvert("関東", "en");
console.log(result); // "kanto"
result = jpPrefecture.regionConvert("中国", "kana");
console.log(result); // "チュウゴク"
```
### prefConvert
#### jpPrefecture.prefConvert(value, key)
**value: {Any}**
**key: {String}**
**return: {Any}**
Alias for `convert("pref")`.
```javascript
var result = jpPrefecture.prefConvert("ヒョウゴ", "name");
console.log(result); // "兵庫県"
result = jpPrefecture.prefConvert("鳥取県", "en");
console.log(result); // "tottori"
result = jpPrefecture.prefConvert("大分県", "id");
console.log(result); // 44
```
### getNeighbors
#### jpPrefecture.getNeighbors(type, value, [select])
**type: {String}**
**value: {Any}**
**select: {String | Array}**
**return: {Array}**
Get the ones that are adjacent to a given region or province.
```javascript
var results = jpPrefecture.getNeighbors("region", "関東");
console.log(results); // [Object, Object]
results = jpPrefecture.getNeighbors("region", "関東", "name");
console.log(results); // ["東北", "中部"]
results = jpPrefecture.getNeighbors("pref", "東京都", "en");
console.log(results); // ["saitama", "chiba", "kanagawa", "yamanashi"]
results = jpPrefecture.getNeighbors("pref", "hoge", "fuga");
console.log(results); // undefined
```
### getRegionNeighbors
#### jpPrefecture.getRegionNeighbors(value, [select])
**value: {Any}**
**select: {String | Array}**
**return: {Array}**
Alias for `getNeighbors("region")`.
```javascript
var results = jpPrefecture.getRegionNeighbors("関東");
console.log(results); // [Object, Object]
results = jpPrefecture.getRegionNeighbors("関東", "name");
console.log(results); // ["東北", "中部"]
```
### getPrefNeighbors
#### jpPrefecture.getPrefNeighbors(value, [select])
**value: {Any}**
**select: {String | Array}**
**return: {Array}**
Alias for `getNeighbors("pref")`.
```javascript
var results = jpPrefecture.getPrefNeighbors("東京都", "en");
console.log(results); // ["saitama", "chiba", "kanagawa", "yamanashi"]
results = jpPrefecture.getPrefNeighbors("hoge", "fuga");
console.log(results); // undefined
```
### isNeighbor
#### jpPrefecture.isNeighbor(type, val1, val2)
**type: {String}**
**val1: {Any}**
**val2: {Any}**
**return: {Boolean}**
Determine if the specified two regions or prefectures were are adjacent.
```javascript
var result = jpPrefecture.isNeighbor("region", "関東", "東北");
console.log(result); // true
result = jpPrefecture.isNeighbor("region", "関東", "中国");
console.log(result); // false
result = jpPrefecture.isNeighbor("pref", "山形", "fukushima");
console.log(result); // true
result = jpPrefecture.isNeighbor("pref", "神奈川県", "hokkaido");
console.log(result); // false
```
### isRegionNeighbor
#### jpPrefecture.isRegionNeighbor(val1, val2)
**val1: {Any}**
**val2: {Any}**
**return: {Boolean}**
Alias for `isNeighbor("region")`.
```javascript
var result = jpPrefecture.isRegionNeighbor("関東", "東北");
console.log(result); // true
result = jpPrefecture.isRegionNeighbor("関東", "中国");
console.log(result); // false
```
### isPrefNeighbor
#### jpPrefecture.isPrefNeighbor(val1, val2)
**val1: {Any}**
**val2: {Any}**
**return: {Boolean}**
Alias for `isNeighbor("pref")`.
```javascript
var result = jpPrefecture.isPrefNeighbor("山形", "fukushima");
console.log(result); // true
result = jpPrefecture.isPrefNeighbor("神奈川県", "hokkaido");
console.log(result); // false
```
### neighborSize
#### jpPrefecture.neighborSize(type, value)
**type: {String}**
**value: {Any}**
**return: {Integer}**
Get the number of adjacent of the specified region.
```javascript
var result = jpPrefecture.neighborSize("region", "九州");
console.log(result); // 2
result = jpPrefecture.neighborSize("region", "tohoku");
console.log(result); // 1
result = jpPrefecture.neighborSize("region", "hoge");
console.log(result); // 0
result = jpPrefecture.neighborSize("pref", "tokyo");
console.log(result); // 4
```
### regionNeighborSize
#### jpPrefecture.regionNeighborSize(value)
**value: {Any}**
**return: {Integer}**
Alias for `neighborSize("region")`.
```javascript
var result = jpPrefecture.regionNeighborSize("九州");
console.log(result); // 2
result = jpPrefecture.regionNeighborSize("tohoku");
console.log(result); // 1
```
### prefNeighborSize
#### jpPrefecture.prefNeighborSize(value)
**value: {Any}**
**return: {Integer}**
Alias for `neighborSize("pref")`.
```javascript
var result = jpPrefecture.prefNeighborSize("北海道");
console.log(result); // 1
result = jpPrefecture.prefNeighborSize("ワカヤマ");
console.log(result); // 5
```
### getAllRegionInPref
#### jpPrefecture.getAllRegionInPref()
**return: {Array}**
Get a list of state that contains the prefectures corresponding to the region in the multidimensional array.
This is useful when the loop of the list was based on the regional.
```javascript
console.log( jpPrefecture.getAllRegionInPref() );
/*
[
0: {
region: {id:1, name:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]},
prefectures: [
{id:1, region:1, name:"北海道", short:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]},
]
},
1: {
region: {id:2, name:"東北", kana:"トウホク", en:"tohoku", neighbor:[1]},
prefectures: [
{id:2, region:2, name:"青森県", short:"青森", kana:"アオモリ", en:"aomori", neighbor:[1, 3, 5]},
{id:3, region:2, name:"岩手県", short:"岩手", kana:"イワテ", en:"iwate", neighbor:[2, 4, 5]},
{id:4, region:2, name:"宮城県", short:"宮城", kana:"ミヤギ", en:"miyagi", neighbor:[3, 5, 6, 7]},
{id:5, region:2, name:"秋田県", short:"秋田", kana:"アキタ", en:"akita", neighbor:[2, 3, 4, 6]},
{id:6, region:2, name:"山形県", short:"山形", kana:"ヤマガタ", en:"yamagata", neighbor:[4, 5, 7, 15]},
{id:7, region:2, name:"福島県", short:"福島", kana:"フクシマ", en:"fukushima", neighbor:[4, 6, 8, 9, 10, 15]},
]
},
...
]
*/
```
## Use DataList
Data regions and prefectures uses the following.
Id prefectures correspond to those integer the region code of ISO.
> [全国地方公共団体コード](http://ja.wikipedia.org/wiki/%E5%85%A8%E5%9B%BD%E5%9C%B0%E6%96%B9%E5%85%AC%E5%85%B1%E5%9B%A3%E4%BD%93%E3%82%B3%E3%83%BC%E3%83%89#.E9.83.BD.E9.81.93.E5.BA.9C.E7.9C.8C.E3.82.B3.E3.83.BC.E3.83.89)
**Regions:**
```javascript
[
{id:1, name:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]},
{id:2, name:"東北", kana:"トウホク", en:"tohoku", neighbor:[1]},
{id:3, name:"関東", kana:"カントウ", en:"kanto", neighbor:[2, 4]},
{id:4, name:"中部", kana:"チュウブ", en:"chubu", neighbor:[2, 3, 5]},
{id:5, name:"近畿", kana:"キンキ", en:"kinki", neighbor:[4, 6, 7]},
{id:6, name:"中国", kana:"チュウゴク", en:"chugoku", neighbor:[5, 7, 8]},
{id:7, name:"四国", kana:"シコク", en:"shikoku", neighbor:[5, 6, 8]},
{id:8, name:"九州", kana:"キュウシュウ", en:"kyusyu", neighbor:[6, 7]}
]
```
**Prefectures:**
```javascript
[
{id:1, region:1, name:"北海道", short:"北海道", kana:"ホッカイドウ", en:"hokkaido", neighbor:[2]},
{id:2, region:2, name:"青森県", short:"青森", kana:"アオモリ", en:"aomori", neighbor:[1, 3, 5]},
{id:3, region:2, name:"岩手県", short:"岩手", kana:"イワテ", en:"iwate", neighbor:[2, 4, 5]},
{id:4, region:2, name:"宮城県", short:"宮城", kana:"ミヤギ", en:"miyagi", neighbor:[3, 5, 6, 7]},
{id:5, region:2, name:"秋田県", short:"秋田", kana:"アキタ", en:"akita", neighbor:[2, 3, 4, 6]},
{id:6, region:2, name:"山形県", short:"山形", kana:"ヤマガタ", en:"yamagata", neighbor:[4, 5, 7, 15]},
{id:7, region:2, name:"福島県", short:"福島", kana:"フクシマ", en:"fukushima", neighbor:[4, 6, 8, 9, 10, 15]},
{id:8, region:3, name:"茨城県", short:"茨城", kana:"イバラキ", en:"ibaraki", neighbor:[7, 9, 11, 12]},
{id:9, region:3, name:"栃木県", short:"栃木", kana:"トチギ", en:"tochigi", neighbor:[8, 7, 10, 11]},
{id:10, region:3, name:"群馬県", short:"群馬", kana:"グンマ", en:"gunma", neighbor:[7, 9, 11, 15, 20]},
{id:11, region:3, name:"埼玉県", short:"埼玉", kana:"サイタマ", en:"saitama", neighbor:[8, 9, 10, 12, 13, 19, 20]},
{id:12, region:3, name:"千葉県", short:"千葉", kana:"チバ", en:"chiba", neighbor:[8, 11, 13, 14]},
{id:13, region:3, name:"東京都", short:"東京", kana:"トウキョウ", en:"tokyo", neighbor:[11, 12, 14, 19]},
{id:14, region:3, name:"神奈川県", short:"神奈川", kana:"カナガワ", en:"kanagawa", neighbor:[12, 13, 19, 22]},
{id:15, region:4, name:"新潟県", short:"新潟", kana:"ニイガタ", en:"niigata", neighbor:[6, 7, 10, 16, 20]},
{id:16, region:4, name:"富山県", short:"富山", kana:"トヤマ", en:"toyama", neighbor:[15, 17, 20, 21]},
{id:17, region:4, name:"石川県", short:"石川", kana:"イシカワ", en:"ishikawa", neighbor:[16, 18, 21]},
{id:18, region:4, name:"福井県", short:"福井", kana:"フクイ", en:"fukui", neighbor:[17, 21, 25, 26]},
{id:19, region:4, name:"山梨県", short:"山梨", kana:"ヤマナシ", en:"yamanashi", neighbor:[11, 13, 14, 20, 22]},
{id:20, region:4, name:"長野県", short:"長野", kana:"ナガノ", en:"nagano", neighbor:[10, 11, 15, 16, 19, 21, 22, 23]},
{id:21, region:4, name:"岐阜県", short:"岐阜", kana:"ギフ", en:"gifu", neighbor:[16, 17, 18, 20, 23, 24, 25]},
{id:22, region:4, name:"静岡県", short:"静岡", kana:"シズオカ", en:"shizuoka", neighbor:[14, 19, 20, 23]},
{id:23, region:4, name:"愛知県", short:"愛知", kana:"アイチ", en:"aichi", neighbor:[20, 21, 22, 24]},
{id:24, region:5, name:"三重県", short:"三重", kana:"ミエ", en:"mie", neighbor:[21, 23, 25, 26, 29, 30]},
{id:25, region:5, name:"滋賀県", short:"滋賀", kana:"シガ", en:"shiga", neighbor:[18, 21, 24, 26]},
{id:26, region:5, name:"京都府", short:"京都", kana:"キョウト", en:"kyoto", neighbor:[18, 24, 25, 27, 28, 29]},
{id:27, region:5, name:"大阪府", short:"大阪", kana:"オオサカ", en:"osaka", neighbor:[26, 28, 29, 30]},
{id:28, region:5, name:"兵庫県", short:"兵庫", kana:"ヒョウゴ", en:"hyogo", neighbor:[26, 27, 30, 31, 33, 36, 37]},
{id:29, region:5, name:"奈良県", short:"奈良", kana:"ナラ", en:"nara", neighbor:[24, 26, 27, 30]},
{id:30, region:5, name:"和歌山県", short:"和歌山", kana:"ワカヤマ", en:"wakayama", neighbor:[24, 27, 28, 29, 36]},
{id:31, region:6, name:"鳥取県", short:"鳥取", kana:"トットリ", en:"tottori", neighbor:[28, 32, 33, 34]},
{id:32, region:6, name:"島根県", short:"島根", kana:"シマネ", en:"shimane", neighbor:[31, 34, 35]},
{id:33, region:6, name:"岡山県", short:"岡山", kana:"オカヤマ", en:"okayama", neighbor:[28, 31, 34, 37]},
{id:34, region:6, name:"広島県", short:"広島", kana:"ヒロシマ", en:"hiroshima", neighbor:[31, 32, 33, 35, 37, 38]},
{id:35, region:6, name:"山口県", short:"山口", kana:"ヤマグチ", en:"yamaguchi", neighbor:[32, 34, 38, 40, 44]},
{id:36, region:7, name:"徳島県", short:"徳島", kana:"トクシマ", en:"tokushima", neighbor:[28, 30, 37, 38, 39]},
{id:37, region:7, name:"香川県", short:"香川", kana:"カガワ", en:"kagawa", neighbor:[28, 33, 34, 36, 38]},
{id:38, region:7, name:"愛媛県", short:"愛媛", kana:"エヒメ", en:"ehime", neighbor:[33, 34, 35, 36, 37, 39, 44]},
{id:39, region:7, name:"高知県", short:"高知", kana:"コウチ", en:"kochi", neighbor:[36, 38]},
{id:40, region:8, name:"福岡県", short:"福岡", kana:"フクオカ", en:"fukuoka", neighbor:[35, 41, 42, 43, 44]},
{id:41, region:8, name:"佐賀県", short:"佐賀", kana:"サガ", en:"saga", neighbor:[40, 42]},
{id:42, region:8, name:"長崎県", short:"長崎", kana:"ナガサキ", en:"nagasaki", neighbor:[41, 43]},
{id:43, region:8, name:"熊本県", short:"熊本", kana:"クマモト", en:"kumamoto", neighbor:[40, 41, 42, 44, 45, 46]},
{id:44, region:8, name:"大分県", short:"大分", kana:"オオイタ", en:"oita", neighbor:[35, 38, 40, 43, 45]},
{id:45, region:8, name:"宮崎県", short:"宮崎", kana:"ミヤザキ", en:"miyazaki", neighbor:[43, 44, 46]},
{id:46, region:8, name:"鹿児島県", short:"鹿児島", kana:"カゴシマ", en:"kagoshima", neighbor:[43, 45, 47]},
{id:47, region:8, name:"沖縄県", short:"沖縄", kana:"オキナワ", en:"okinawa", neighbor:[46]}
]
```
## Browser Support
* IE6 +
* Chrome
* Firefox
* Safari
## Author
[tsuyoshi wada](https://github.com/tsuyoshiwada/)
-------------
Bugs, feature requests and comments are more than welcome in the [issues](https://github.com/tsuyoshiwada/jp-prefecture/issues)