taiwan_districts 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 48836296535f8dd415929adf23a6c904421718bd
4
+ data.tar.gz: 3717ca594ba7b88168ad6aa4018b8000e80a47b8
5
+ SHA512:
6
+ metadata.gz: 317d4a3ceaf82607cc229c0adb3324213e1975548c0d9a66cf3a6a08deaeabbee2768b7069764ab2a29853b838c239b81376afda3ea49d7c16a84007e9f583a1
7
+ data.tar.gz: e912d25520dd3f8773b549e74e2858d6e60c6e68123adac34628b3b3c21b2dfe326fee523af5901c2bf063eda7013143e03efc8944b6abbe65ed5aff146aa47d
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2017 Vincent Lin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,25 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+ require 'rspec/core/rake_task'
9
+
10
+ # RDoc::Task.new(:rdoc) do |rdoc|
11
+ # rdoc.rdoc_dir = 'rdoc'
12
+ # rdoc.title = 'TaiwanDistricts'
13
+ # rdoc.options << '--line-numbers'
14
+ # rdoc.rdoc_files.include('README.rdoc')
15
+ # rdoc.rdoc_files.include('lib/**/*.rb')
16
+ # end
17
+
18
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
19
+ load 'rails/tasks/engine.rake'
20
+ load 'rails/tasks/statistics.rake'
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
24
+ RSpec::Core::RakeTask.new(:spec)
25
+ task default: :spec
@@ -0,0 +1,3 @@
1
+ #= require jquery
2
+ #= require taiwan_districts/jquery.taiwan_districts
3
+ #= require_tree .
@@ -0,0 +1,16 @@
1
+ (($) ->
2
+ $.fn.taiwan_districts = () ->
3
+ @each ->
4
+ selects = $(@).find('.city-select')
5
+ lang = $(@).find('.city-select').attr('lang')
6
+ selects.change ->
7
+ $this = $(@)
8
+ next_selects = selects.slice(selects.index(@) + 1) # empty all children city
9
+ $("option:gt(0)", next_selects).remove()
10
+ if next_selects.first()[0] and $this.val() # init next child
11
+ $.get "/taiwan_districts/#{$(@).val()}?lang=#{lang}", (data) ->
12
+ next_selects.first()[0].options.add(new Option(option[0], option[1])) for option in data
13
+
14
+ $ ->
15
+ $('.city-group').taiwan_districts()
16
+ )(jQuery)
@@ -0,0 +1,4 @@
1
+ module TaiwanDistricts
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,13 @@
1
+ require_dependency "taiwan_districts/application_controller"
2
+
3
+ module TaiwanDistricts
4
+ class DataController < ApplicationController
5
+ def show
6
+ data = TaiwanDistricts.list(params[:lang], params[:id])
7
+ render json: data, layout: nil
8
+ end
9
+
10
+ def index
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>TaiwanDistricts</title>
5
+ <%= javascript_include_tag "taiwan_districts/application" %>
6
+ <%= csrf_meta_tags %>
7
+ </head>
8
+ <body>
9
+
10
+ <%= yield %>
11
+
12
+ </body>
13
+ </html>
@@ -0,0 +1,29 @@
1
+ <div class='rails-helper city-group'>
2
+
3
+ <%= select_tag :city,
4
+ options_for_select( TaiwanDistricts.list(lang='zhtw') ),
5
+ prompt: '--縣市--',
6
+ class: ['city-select', 'city-city'],
7
+ lang: 'zhtw' %>
8
+
9
+ <%= select_tag :district,
10
+ nil,
11
+ prompt: '--鄉鎮市區--',
12
+ class: ['city-select', 'city-district'] %>
13
+
14
+ </div>
15
+
16
+ <div class='rails-helper city-group'>
17
+
18
+ <%= select_tag :city,
19
+ options_for_select( TaiwanDistricts.list(lang='en') ),
20
+ prompt: '--Cities--',
21
+ class: ['city-select', 'city-city'],
22
+ lang: 'en' %>
23
+
24
+ <%= select_tag :district,
25
+ nil,
26
+ prompt: '--Districts--',
27
+ class: ['city-select', 'city-district'] %>
28
+
29
+ </div>
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ TaiwanDistricts::Engine.routes.draw do
2
+ root to: 'data#index'
3
+ get ':id', to: 'data#show'
4
+ end
data/db/districts.json ADDED
@@ -0,0 +1,427 @@
1
+ {
2
+ "city": [
3
+ {"id": "01000", "zipcode": "", "zhtw": "臺北市", "en": "Taipei City"},
4
+ {"id": "02000", "zipcode": "", "zhtw": "基隆市", "en": "Keelung City"},
5
+ {"id": "03000", "zipcode": "", "zhtw": "新北市", "en": "New Taipei City"},
6
+ {"id": "04000", "zipcode": "", "zhtw": "連江縣", "en": "Lienchiang County"},
7
+ {"id": "05000", "zipcode": "", "zhtw": "宜蘭縣", "en": "Yilan County"},
8
+ {"id": "06000", "zipcode": "", "zhtw": "釣魚臺", "en": "Diauyutai"},
9
+ {"id": "07000", "zipcode": "", "zhtw": "新竹市", "en": "Hsinchu City"},
10
+ {"id": "08000", "zipcode": "", "zhtw": "新竹縣", "en": "Hsinchu County"},
11
+ {"id": "09000", "zipcode": "", "zhtw": "桃園市", "en": "Taoyuan City"},
12
+ {"id": "10000", "zipcode": "", "zhtw": "苗栗縣", "en": "Miaoli County"},
13
+ {"id": "11000", "zipcode": "", "zhtw": "臺中市", "en": "Taichung City"},
14
+ {"id": "12000", "zipcode": "", "zhtw": "彰化縣", "en": "Changhua County"},
15
+ {"id": "13000", "zipcode": "", "zhtw": "南投縣", "en": "Nantou County"},
16
+ {"id": "14000", "zipcode": "", "zhtw": "嘉義市", "en": "Chiayi City"},
17
+ {"id": "15000", "zipcode": "", "zhtw": "嘉義縣", "en": "Chiayi County"},
18
+ {"id": "16000", "zipcode": "", "zhtw": "雲林縣", "en": "Yunlin County"},
19
+ {"id": "17000", "zipcode": "", "zhtw": "臺南市", "en": "Tainan City"},
20
+ {"id": "18000", "zipcode": "", "zhtw": "高雄市", "en": "Kaohsiung City"},
21
+ {"id": "19000", "zipcode": "", "zhtw": "南海島", "en": "Nanhai"},
22
+ {"id": "20000", "zipcode": "", "zhtw": "澎湖縣", "en": "Penghu County"},
23
+ {"id": "21000", "zipcode": "", "zhtw": "金門縣", "en": "Kinmen County"},
24
+ {"id": "22000", "zipcode": "", "zhtw": "屏東縣", "en": "Pingtung County"},
25
+ {"id": "23000", "zipcode": "", "zhtw": "臺東縣", "en": "Taitung County"},
26
+ {"id": "24000", "zipcode": "", "zhtw": "花蓮縣", "en": "Hualien County"}
27
+ ],
28
+ "district": [
29
+ {"id": "01100", "zipcode": "100", "zhtw": "中正區", "en": "Zhongzheng Dist."},
30
+ {"id": "01103", "zipcode": "103", "zhtw": "大同區", "en": "Datong Dist."},
31
+ {"id": "01104", "zipcode": "104", "zhtw": "中山區", "en": "Zhongshan Dist."},
32
+ {"id": "01105", "zipcode": "105", "zhtw": "松山區", "en": "Songshan Dist."},
33
+ {"id": "01106", "zipcode": "106", "zhtw": "大安區", "en": "Da’an Dist."},
34
+ {"id": "01108", "zipcode": "108", "zhtw": "萬華區", "en": "Wanhua Dist."},
35
+ {"id": "01110", "zipcode": "110", "zhtw": "信義區", "en": "Xinyi Dist."},
36
+ {"id": "01111", "zipcode": "111", "zhtw": "士林區", "en": "Shilin Dist."},
37
+ {"id": "01112", "zipcode": "112", "zhtw": "北投區", "en": "Beitou Dist."},
38
+ {"id": "01114", "zipcode": "114", "zhtw": "內湖區", "en": "Neihu Dist."},
39
+ {"id": "01115", "zipcode": "115", "zhtw": "南港區", "en": "Nangang Dist."},
40
+ {"id": "01116", "zipcode": "116", "zhtw": "文山區", "en": "Wenshan Dist."},
41
+
42
+ {"id": "02200", "zipcode": "200", "zhtw": "仁愛區", "en": "Ren’ai Dist."},
43
+ {"id": "02201", "zipcode": "201", "zhtw": "信義區", "en": "Xinyi Dist."},
44
+ {"id": "02202", "zipcode": "202", "zhtw": "中正區", "en": "Zhongzheng Dist."},
45
+ {"id": "02203", "zipcode": "203", "zhtw": "中山區", "en": "Zhongshan Dist."},
46
+ {"id": "02204", "zipcode": "204", "zhtw": "安樂區", "en": "Anle Dist."},
47
+ {"id": "02205", "zipcode": "205", "zhtw": "暖暖區", "en": "Nuannuan Dist."},
48
+ {"id": "02206", "zipcode": "206", "zhtw": "七堵區", "en": "Qidu Dist."},
49
+
50
+ {"id": "03207", "zipcode": "207", "zhtw": "萬里區", "en": "Wanli Dist."},
51
+ {"id": "03208", "zipcode": "208", "zhtw": "金山區", "en": "Jinshan Dist."},
52
+ {"id": "03220", "zipcode": "220", "zhtw": "板橋區", "en": "Banqiao Dist."},
53
+ {"id": "03221", "zipcode": "221", "zhtw": "汐止區", "en": "Xizhi Dist."},
54
+ {"id": "03222", "zipcode": "222", "zhtw": "深坑區", "en": "Shenkeng Dist."},
55
+ {"id": "03223", "zipcode": "223", "zhtw": "石碇區", "en": "Shiding Dist."},
56
+ {"id": "03224", "zipcode": "224", "zhtw": "瑞芳區", "en": "Ruifang Dist."},
57
+ {"id": "03226", "zipcode": "226", "zhtw": "平溪區", "en": "Pingxi Dist."},
58
+ {"id": "03227", "zipcode": "227", "zhtw": "雙溪區", "en": "Shuangxi Dist."},
59
+ {"id": "03228", "zipcode": "228", "zhtw": "貢寮區", "en": "Gongliao Dist."},
60
+ {"id": "03231", "zipcode": "231", "zhtw": "新店區", "en": "Xindian Dist."},
61
+ {"id": "03232", "zipcode": "232", "zhtw": "坪林區", "en": "Pinglin Dist."},
62
+ {"id": "03233", "zipcode": "233", "zhtw": "烏來區", "en": "Wulai Dist."},
63
+ {"id": "03234", "zipcode": "234", "zhtw": "永和區", "en": "Yonghe Dist."},
64
+ {"id": "03235", "zipcode": "235", "zhtw": "中和區", "en": "Zhonghe Dist."},
65
+ {"id": "03236", "zipcode": "236", "zhtw": "土城區", "en": "Tucheng Dist."},
66
+ {"id": "03237", "zipcode": "237", "zhtw": "三峽區", "en": "Sanxia Dist."},
67
+ {"id": "03238", "zipcode": "238", "zhtw": "樹林區", "en": "Shulin Dist."},
68
+ {"id": "03239", "zipcode": "239", "zhtw": "鶯歌區", "en": "Yingge Dist."},
69
+ {"id": "03241", "zipcode": "241", "zhtw": "三重區", "en": "Sanchong Dist."},
70
+ {"id": "03242", "zipcode": "242", "zhtw": "新莊區", "en": "Xinzhuang Dist."},
71
+ {"id": "03243", "zipcode": "243", "zhtw": "泰山區", "en": "Taishan Dist."},
72
+ {"id": "03244", "zipcode": "244", "zhtw": "林口區", "en": "Linkou Dist."},
73
+ {"id": "03247", "zipcode": "247", "zhtw": "蘆洲區", "en": "Luzhou Dist."},
74
+ {"id": "03248", "zipcode": "248", "zhtw": "五股區", "en": "Wugu Dist."},
75
+ {"id": "03249", "zipcode": "249", "zhtw": "八里區", "en": "Bali Dist."},
76
+ {"id": "03251", "zipcode": "251", "zhtw": "淡水區", "en": "Tamsui Dist."},
77
+ {"id": "03252", "zipcode": "252", "zhtw": "三芝區", "en": "Sanzhi Dist."},
78
+ {"id": "03253", "zipcode": "253", "zhtw": "石門區", "en": "Shimen Dist."},
79
+
80
+ {"id": "04209", "zipcode": "209", "zhtw": "南竿鄉", "en": "Nangan Township"},
81
+ {"id": "04210", "zipcode": "210", "zhtw": "北竿鄉", "en": "Beigan Township"},
82
+ {"id": "04211", "zipcode": "211", "zhtw": "莒光鄉", "en": "Juguang Township"},
83
+ {"id": "04212", "zipcode": "212", "zhtw": "東引鄉", "en": "Dongyin Township"},
84
+
85
+ {"id": "05260", "zipcode": "260", "zhtw": "宜蘭市", "en": "Yilan City"},
86
+ {"id": "05263", "zipcode": "263", "zhtw": "壯圍鄉", "en": "Zhuangwei Township"},
87
+ {"id": "05261", "zipcode": "261", "zhtw": "頭城鎮", "en": "Toucheng Township"},
88
+ {"id": "05262", "zipcode": "262", "zhtw": "礁溪鄉", "en": "Jiaoxi Township"},
89
+ {"id": "05264", "zipcode": "264", "zhtw": "員山鄉", "en": "Yuanshan Township"},
90
+ {"id": "05265", "zipcode": "265", "zhtw": "羅東鎮", "en": "Luodong Township"},
91
+ {"id": "05266", "zipcode": "266", "zhtw": "三星鄉", "en": "Sanxing Township"},
92
+ {"id": "05267", "zipcode": "267", "zhtw": "大同鄉", "en": "Datong Township"},
93
+ {"id": "05268", "zipcode": "268", "zhtw": "五結鄉", "en": "Wujie Township"},
94
+ {"id": "05269", "zipcode": "269", "zhtw": "冬山鄉", "en": "Dongshan Township"},
95
+ {"id": "05270", "zipcode": "270", "zhtw": "蘇澳鎮", "en": "Su’ao Township"},
96
+ {"id": "05272", "zipcode": "272", "zhtw": "南澳鄉", "en": "Nan’ao Township"},
97
+ {"id": "05290", "zipcode": "290", "zhtw": "釣魚臺", "en": "Diaoyutai"},
98
+
99
+ {"id": "06290", "zipcode": "290", "zhtw": "釣魚臺", "en": "Diaoyutai"},
100
+
101
+ {"id": "07300", "zipcode": "300", "zhtw": "東區", "en": "East Dist."},
102
+ {"id": "07300", "zipcode": "300", "zhtw": "北區", "en": "North Dist."},
103
+ {"id": "07300", "zipcode": "300", "zhtw": "香山區", "en": "Xiangshan Dist."},
104
+
105
+ {"id": "08308", "zipcode": "308", "zhtw": "寶山鄉", "en": "Baoshan Township"},
106
+ {"id": "08302", "zipcode": "302", "zhtw": "竹北市", "en": "Zhubei City"},
107
+ {"id": "08303", "zipcode": "303", "zhtw": "湖口鄉", "en": "Hukou Township"},
108
+ {"id": "08304", "zipcode": "304", "zhtw": "新豐鄉", "en": "Xinfeng Township"},
109
+ {"id": "08305", "zipcode": "305", "zhtw": "新埔鎮", "en": "Xinpu Township"},
110
+ {"id": "08306", "zipcode": "306", "zhtw": "關西鎮", "en": "Guanxi Township"},
111
+ {"id": "08307", "zipcode": "307", "zhtw": "芎林鄉", "en": "Qionglin Township"},
112
+ {"id": "08310", "zipcode": "310", "zhtw": "竹東鎮", "en": "Zhudong Township"},
113
+ {"id": "08311", "zipcode": "311", "zhtw": "五峰鄉", "en": "Wufeng Township"},
114
+ {"id": "08312", "zipcode": "312", "zhtw": "橫山鄉", "en": "Hengshan Township"},
115
+ {"id": "08313", "zipcode": "313", "zhtw": "尖石鄉", "en": "Jianshi Township"},
116
+ {"id": "08314", "zipcode": "314", "zhtw": "北埔鄉", "en": "Beipu Township"},
117
+ {"id": "08315", "zipcode": "315", "zhtw": "峨眉鄉", "en": "Emei Township"},
118
+
119
+ {"id": "09320", "zipcode": "320", "zhtw": "中壢區", "en": "Zhongli Dist."},
120
+ {"id": "09324", "zipcode": "324", "zhtw": "平鎮區", "en": "Pingzhen Dist."},
121
+ {"id": "09325", "zipcode": "325", "zhtw": "龍潭區", "en": "Longtan Dist."},
122
+ {"id": "09326", "zipcode": "326", "zhtw": "楊梅區", "en": "Yangmei Dist."},
123
+ {"id": "09327", "zipcode": "327", "zhtw": "新屋區", "en": "Xinwu Dist."},
124
+ {"id": "09328", "zipcode": "328", "zhtw": "觀音區", "en": "Guanyin Dist."},
125
+ {"id": "09330", "zipcode": "330", "zhtw": "桃園區", "en": "Taoyuan Dist."},
126
+ {"id": "09333", "zipcode": "333", "zhtw": "龜山區", "en": "Guishan Dist."},
127
+ {"id": "09334", "zipcode": "334", "zhtw": "八德區", "en": "Bade Dist."},
128
+ {"id": "09335", "zipcode": "335", "zhtw": "大溪區", "en": "Daxi Dist."},
129
+ {"id": "09336", "zipcode": "336", "zhtw": "復興區", "en": "Fuxing Dist."},
130
+ {"id": "09337", "zipcode": "337", "zhtw": "大園區", "en": "Dayuan Dist."},
131
+ {"id": "09338", "zipcode": "338", "zhtw": "蘆竹區", "en": "Luzhu Dist."},
132
+
133
+ {"id": "10350", "zipcode": "350", "zhtw": "竹南鎮", "en": "Zhunan Township"},
134
+ {"id": "10351", "zipcode": "351", "zhtw": "頭份市", "en": "Toufen City"},
135
+ {"id": "10352", "zipcode": "352", "zhtw": "三灣鄉", "en": "Sanwan Township"},
136
+ {"id": "10353", "zipcode": "353", "zhtw": "南庄鄉", "en": "Nanzhuang Township"},
137
+ {"id": "10354", "zipcode": "354", "zhtw": "獅潭鄉", "en": "Shitan Township"},
138
+ {"id": "10356", "zipcode": "356", "zhtw": "後龍鎮", "en": "Houlong Township"},
139
+ {"id": "10357", "zipcode": "357", "zhtw": "通霄鎮", "en": "Tongxiao Township"},
140
+ {"id": "10358", "zipcode": "358", "zhtw": "苑裡鎮", "en": "Yuanli Township"},
141
+ {"id": "10360", "zipcode": "360", "zhtw": "苗栗市", "en": "Miaoli City"},
142
+ {"id": "10361", "zipcode": "361", "zhtw": "造橋鄉", "en": "Zaoqiao Township"},
143
+ {"id": "10362", "zipcode": "362", "zhtw": "頭屋鄉", "en": "Touwu Township"},
144
+ {"id": "10363", "zipcode": "363", "zhtw": "公館鄉", "en": "Gongguan Township"},
145
+ {"id": "10364", "zipcode": "364", "zhtw": "大湖鄉", "en": "Dahu Township"},
146
+ {"id": "10365", "zipcode": "365", "zhtw": "泰安鄉", "en": "Tai’an Township"},
147
+ {"id": "10366", "zipcode": "366", "zhtw": "銅鑼鄉", "en": "Tongluo Township"},
148
+ {"id": "10367", "zipcode": "367", "zhtw": "三義鄉", "en": "Sanyi Township"},
149
+ {"id": "10368", "zipcode": "368", "zhtw": "西湖鄉", "en": "Xihu Township"},
150
+ {"id": "10369", "zipcode": "369", "zhtw": "卓蘭鎮", "en": "Zhuolan Township"},
151
+
152
+ {"id": "11400", "zipcode": "400", "zhtw": "中區", "en": "Central Dist."},
153
+ {"id": "11401", "zipcode": "401", "zhtw": "東區", "en": "East Dist."},
154
+ {"id": "11402", "zipcode": "402", "zhtw": "南區", "en": "South Dist."},
155
+ {"id": "11403", "zipcode": "403", "zhtw": "西區", "en": "West Dist."},
156
+ {"id": "11404", "zipcode": "404", "zhtw": "北區", "en": "North Dist."},
157
+ {"id": "11406", "zipcode": "406", "zhtw": "北屯區", "en": "Beitun Dist."},
158
+ {"id": "11407", "zipcode": "407", "zhtw": "西屯區", "en": "Xitun Dist."},
159
+ {"id": "11408", "zipcode": "408", "zhtw": "南屯區", "en": "Nantun Dist."},
160
+ {"id": "11411", "zipcode": "411", "zhtw": "太平區", "en": "Taiping Dist."},
161
+ {"id": "11412", "zipcode": "412", "zhtw": "大里區", "en": "Dali Dist."},
162
+ {"id": "11413", "zipcode": "413", "zhtw": "霧峰區", "en": "Wufeng Dist."},
163
+ {"id": "11414", "zipcode": "414", "zhtw": "烏日區", "en": "Wuri Dist."},
164
+ {"id": "11420", "zipcode": "420", "zhtw": "豐原區", "en": "Fengyuan Dist."},
165
+ {"id": "11421", "zipcode": "421", "zhtw": "后里區", "en": "Houli Dist."},
166
+ {"id": "11422", "zipcode": "422", "zhtw": "石岡區", "en": "Shigang Dist."},
167
+ {"id": "11423", "zipcode": "423", "zhtw": "東勢區", "en": "Dongshi Dist."},
168
+ {"id": "11424", "zipcode": "424", "zhtw": "和平區", "en": "Heping Dist."},
169
+ {"id": "11426", "zipcode": "426", "zhtw": "新社區", "en": "Xinshe Dist."},
170
+ {"id": "11427", "zipcode": "427", "zhtw": "潭子區", "en": "Tanzi Dist."},
171
+ {"id": "11428", "zipcode": "428", "zhtw": "大雅區", "en": "Daya Dist."},
172
+ {"id": "11429", "zipcode": "429", "zhtw": "神岡區", "en": "Shengang Dist."},
173
+ {"id": "11432", "zipcode": "432", "zhtw": "大肚區", "en": "Dadu Dist."},
174
+ {"id": "11433", "zipcode": "433", "zhtw": "沙鹿區", "en": "Shalu Dist."},
175
+ {"id": "11434", "zipcode": "434", "zhtw": "龍井區", "en": "Longjing Dist."},
176
+ {"id": "11435", "zipcode": "435", "zhtw": "梧棲區", "en": "Wuqi Dist."},
177
+ {"id": "11436", "zipcode": "436", "zhtw": "清水區", "en": "Qingshui Dist."},
178
+ {"id": "11437", "zipcode": "437", "zhtw": "大甲區", "en": "Dajia Dist."},
179
+ {"id": "11438", "zipcode": "438", "zhtw": "外埔區", "en": "Waipu Dist."},
180
+ {"id": "11439", "zipcode": "439", "zhtw": "大安區", "en": "Da’an Dist."},
181
+
182
+ {"id": "12500", "zipcode": "500", "zhtw": "彰化市", "en": "Changhua City"},
183
+ {"id": "12502", "zipcode": "502", "zhtw": "芬園鄉", "en": "Fenyuan Township"},
184
+ {"id": "12503", "zipcode": "503", "zhtw": "花壇鄉", "en": "Huatan Township"},
185
+ {"id": "12504", "zipcode": "504", "zhtw": "秀水鄉", "en": "Xiushui Township"},
186
+ {"id": "12505", "zipcode": "505", "zhtw": "鹿港鎮", "en": "Lukang Township"},
187
+ {"id": "12506", "zipcode": "506", "zhtw": "福興鄉", "en": "Fuxing Township"},
188
+ {"id": "12507", "zipcode": "507", "zhtw": "線西鄉", "en": "Xianxi Township"},
189
+ {"id": "12508", "zipcode": "508", "zhtw": "和美鎮", "en": "Hemei Township"},
190
+ {"id": "12509", "zipcode": "509", "zhtw": "伸港鄉", "en": "Shengang Township"},
191
+ {"id": "12510", "zipcode": "510", "zhtw": "員林市", "en": "Yuanlin City"},
192
+ {"id": "12511", "zipcode": "511", "zhtw": "社頭鄉", "en": "Shetou Township"},
193
+ {"id": "12512", "zipcode": "512", "zhtw": "永靖鄉", "en": "Yongjing Township"},
194
+ {"id": "12513", "zipcode": "513", "zhtw": "埔心鄉", "en": "Puxin Township"},
195
+ {"id": "12514", "zipcode": "514", "zhtw": "溪湖鎮", "en": "Xihu Township"},
196
+ {"id": "12515", "zipcode": "515", "zhtw": "大村鄉", "en": "Dacun Township"},
197
+ {"id": "12516", "zipcode": "516", "zhtw": "埔鹽鄉", "en": "Puyan Township"},
198
+ {"id": "12520", "zipcode": "520", "zhtw": "田中鎮", "en": "Tianzhong Township"},
199
+ {"id": "12521", "zipcode": "521", "zhtw": "北斗鎮", "en": "Beidou Township"},
200
+ {"id": "12522", "zipcode": "522", "zhtw": "田尾鄉", "en": "Tianwei Township"},
201
+ {"id": "12523", "zipcode": "523", "zhtw": "埤頭鄉", "en": "Pitou Township"},
202
+ {"id": "12524", "zipcode": "524", "zhtw": "溪州鄉", "en": "Xizhou Township"},
203
+ {"id": "12525", "zipcode": "525", "zhtw": "竹塘鄉", "en": "Zhutang Township"},
204
+ {"id": "12526", "zipcode": "526", "zhtw": "二林鎮", "en": "Erlin Township"},
205
+ {"id": "12527", "zipcode": "527", "zhtw": "大城鄉", "en": "Dacheng Township"},
206
+ {"id": "12528", "zipcode": "528", "zhtw": "芳苑鄉", "en": "Fangyuan Township"},
207
+ {"id": "12530", "zipcode": "530", "zhtw": "二水鄉", "en": "Ershui Township"},
208
+
209
+ {"id": "13540", "zipcode": "540", "zhtw": "南投市", "en": "Nantou City"},
210
+ {"id": "13541", "zipcode": "541", "zhtw": "中寮鄉", "en": "Zhongliao Township"},
211
+ {"id": "13542", "zipcode": "542", "zhtw": "草屯鎮", "en": "Caotun Township"},
212
+ {"id": "13544", "zipcode": "544", "zhtw": "國姓鄉", "en": "Guoxing Township"},
213
+ {"id": "13545", "zipcode": "545", "zhtw": "埔里鎮", "en": "Puli Township"},
214
+ {"id": "13546", "zipcode": "546", "zhtw": "仁愛鄉", "en": "Ren’ai Township"},
215
+ {"id": "13551", "zipcode": "551", "zhtw": "名間鄉", "en": "Mingjian Township"},
216
+ {"id": "13552", "zipcode": "552", "zhtw": "集集鎮", "en": "Jiji Township"},
217
+ {"id": "13553", "zipcode": "553", "zhtw": "水里鄉", "en": "Shuili Township"},
218
+ {"id": "13555", "zipcode": "555", "zhtw": "魚池鄉", "en": "Yuchi Township"},
219
+ {"id": "13556", "zipcode": "556", "zhtw": "信義鄉", "en": "Xinyi Township"},
220
+ {"id": "13557", "zipcode": "557", "zhtw": "竹山鎮", "en": "Zhushan Township"},
221
+ {"id": "13558", "zipcode": "558", "zhtw": "鹿谷鄉", "en": "Lugu Township"},
222
+
223
+ {"id": "14600", "zipcode": "600", "zhtw": "西區", "en": "West Dist."},
224
+ {"id": "14600", "zipcode": "600", "zhtw": "東區", "en": "East Dist."},
225
+
226
+ {"id": "15602", "zipcode": "602", "zhtw": "番路鄉", "en": "Fanlu Township"},
227
+ {"id": "15603", "zipcode": "603", "zhtw": "梅山鄉", "en": "Meishan Township"},
228
+ {"id": "15604", "zipcode": "604", "zhtw": "竹崎鄉", "en": "Zhuqi Township"},
229
+ {"id": "15605", "zipcode": "605", "zhtw": "阿里山鄉", "en": "Alishan Township"},
230
+ {"id": "15606", "zipcode": "606", "zhtw": "中埔鄉", "en": "Zhongpu Township"},
231
+ {"id": "15607", "zipcode": "607", "zhtw": "大埔鄉", "en": "Dapu Township"},
232
+ {"id": "15608", "zipcode": "608", "zhtw": "水上鄉", "en": "Shuishang Township"},
233
+ {"id": "15611", "zipcode": "611", "zhtw": "鹿草鄉", "en": "Lucao Township"},
234
+ {"id": "15612", "zipcode": "612", "zhtw": "太保市", "en": "Taibao City"},
235
+ {"id": "15613", "zipcode": "613", "zhtw": "朴子市", "en": "Puzi City"},
236
+ {"id": "15614", "zipcode": "614", "zhtw": "東石鄉", "en": "Dongshi Township"},
237
+ {"id": "15615", "zipcode": "615", "zhtw": "六腳鄉", "en": "Liujiao Township"},
238
+ {"id": "15616", "zipcode": "616", "zhtw": "新港鄉", "en": "Xingang Township"},
239
+ {"id": "15621", "zipcode": "621", "zhtw": "民雄鄉", "en": "Minxiong Township"},
240
+ {"id": "15622", "zipcode": "622", "zhtw": "大林鎮", "en": "Dalin Township"},
241
+ {"id": "15623", "zipcode": "623", "zhtw": "溪口鄉", "en": "Xikou Township"},
242
+ {"id": "15624", "zipcode": "624", "zhtw": "義竹鄉", "en": "Yizhu Township"},
243
+ {"id": "15625", "zipcode": "625", "zhtw": "布袋鎮", "en": "Budai Township"},
244
+
245
+ {"id": "16630", "zipcode": "630", "zhtw": "斗南鎮", "en": "Dounan Township"},
246
+ {"id": "16631", "zipcode": "631", "zhtw": "大埤鄉", "en": "Dapi Township"},
247
+ {"id": "16632", "zipcode": "632", "zhtw": "虎尾鎮", "en": "Huwei Township"},
248
+ {"id": "16633", "zipcode": "633", "zhtw": "土庫鎮", "en": "Tuku Township"},
249
+ {"id": "16634", "zipcode": "634", "zhtw": "褒忠鄉", "en": "Baozhong Township"},
250
+ {"id": "16635", "zipcode": "635", "zhtw": "東勢鄉", "en": "Dongshi Township"},
251
+ {"id": "16636", "zipcode": "636", "zhtw": "臺西鄉", "en": "Taixi Township"},
252
+ {"id": "16637", "zipcode": "637", "zhtw": "崙背鄉", "en": "Lunbei Township"},
253
+ {"id": "16638", "zipcode": "638", "zhtw": "麥寮鄉", "en": "Mailiao Township"},
254
+ {"id": "16640", "zipcode": "640", "zhtw": "斗六市", "en": "Douliu City"},
255
+ {"id": "16643", "zipcode": "643", "zhtw": "林內鄉", "en": "Linnei Township"},
256
+ {"id": "16646", "zipcode": "646", "zhtw": "古坑鄉", "en": "Gukeng Township"},
257
+ {"id": "16647", "zipcode": "647", "zhtw": "莿桐鄉", "en": "Citong Township"},
258
+ {"id": "16648", "zipcode": "648", "zhtw": "西螺鎮", "en": "Xiluo Township"},
259
+ {"id": "16649", "zipcode": "649", "zhtw": "二崙鄉", "en": "Erlun Township"},
260
+ {"id": "16651", "zipcode": "651", "zhtw": "北港鎮", "en": "Beigang Township"},
261
+ {"id": "16652", "zipcode": "652", "zhtw": "水林鄉", "en": "Shuilin Township"},
262
+ {"id": "16653", "zipcode": "653", "zhtw": "口湖鄉", "en": "Kouhu Township"},
263
+ {"id": "16654", "zipcode": "654", "zhtw": "四湖鄉", "en": "Sihu Township"},
264
+ {"id": "16655", "zipcode": "655", "zhtw": "元長鄉", "en": "Yuanchang Township"},
265
+
266
+ {"id": "17700", "zipcode": "700", "zhtw": "中西區", "en": "West Central Dist."},
267
+ {"id": "17701", "zipcode": "701", "zhtw": "東區", "en": "East Dist."},
268
+ {"id": "17702", "zipcode": "702", "zhtw": "南區", "en": "South Dist."},
269
+ {"id": "17704", "zipcode": "704", "zhtw": "北區", "en": "North Dist."},
270
+ {"id": "17708", "zipcode": "708", "zhtw": "安平區", "en": "Anping Dist."},
271
+ {"id": "17709", "zipcode": "709", "zhtw": "安南區", "en": "Annan Dist."},
272
+ {"id": "17710", "zipcode": "710", "zhtw": "永康區", "en": "Yongkang Dist."},
273
+ {"id": "17711", "zipcode": "711", "zhtw": "歸仁區", "en": "Guiren Dist."},
274
+ {"id": "17712", "zipcode": "712", "zhtw": "新化區", "en": "Xinhua Dist."},
275
+ {"id": "17713", "zipcode": "713", "zhtw": "左鎮區", "en": "Zuozhen Dist."},
276
+ {"id": "17714", "zipcode": "714", "zhtw": "玉井區", "en": "Yujing Dist."},
277
+ {"id": "17715", "zipcode": "715", "zhtw": "楠西區", "en": "Nanxi Dist."},
278
+ {"id": "17716", "zipcode": "716", "zhtw": "南化區", "en": "Nanhua Dist."},
279
+ {"id": "17717", "zipcode": "717", "zhtw": "仁德區", "en": "Rende Dist."},
280
+ {"id": "17718", "zipcode": "718", "zhtw": "關廟區", "en": "Guanmiao Dist."},
281
+ {"id": "17719", "zipcode": "719", "zhtw": "龍崎區", "en": "Longqi Dist."},
282
+ {"id": "17720", "zipcode": "720", "zhtw": "官田區", "en": "Guantian Dist."},
283
+ {"id": "17721", "zipcode": "721", "zhtw": "麻豆區", "en": "Madou Dist."},
284
+ {"id": "17722", "zipcode": "722", "zhtw": "佳里區", "en": "Jiali Dist."},
285
+ {"id": "17723", "zipcode": "723", "zhtw": "西港區", "en": "Xigang Dist."},
286
+ {"id": "17724", "zipcode": "724", "zhtw": "七股區", "en": "Qigu Dist."},
287
+ {"id": "17725", "zipcode": "725", "zhtw": "將軍區", "en": "Jiangjun Dist."},
288
+ {"id": "17726", "zipcode": "726", "zhtw": "學甲區", "en": "Xuejia Dist."},
289
+ {"id": "17727", "zipcode": "727", "zhtw": "北門區", "en": "Beimen Dist."},
290
+ {"id": "17730", "zipcode": "730", "zhtw": "新營區", "en": "Xinying Dist."},
291
+ {"id": "17731", "zipcode": "731", "zhtw": "後壁區", "en": "Houbi Dist."},
292
+ {"id": "17732", "zipcode": "732", "zhtw": "白河區", "en": "Baihe Dist."},
293
+ {"id": "17733", "zipcode": "733", "zhtw": "東山區", "en": "Dongshan Dist."},
294
+ {"id": "17734", "zipcode": "734", "zhtw": "六甲區", "en": "Liujia Dist."},
295
+ {"id": "17735", "zipcode": "735", "zhtw": "下營區", "en": "Xiaying Dist."},
296
+ {"id": "17736", "zipcode": "736", "zhtw": "柳營區", "en": "Liuying Dist."},
297
+ {"id": "17737", "zipcode": "737", "zhtw": "鹽水區", "en": "Yanshui Dist."},
298
+ {"id": "17741", "zipcode": "741", "zhtw": "善化區", "en": "Shanhua Dist."},
299
+ {"id": "17744", "zipcode": "744", "zhtw": "新市區", "en": "Xinshi Dist."},
300
+ {"id": "17742", "zipcode": "742", "zhtw": "大內區", "en": "Danei Dist."},
301
+ {"id": "17743", "zipcode": "743", "zhtw": "山上區", "en": "Shanshang Dist."},
302
+ {"id": "17745", "zipcode": "745", "zhtw": "安定區", "en": "Anding Dist."},
303
+
304
+ {"id": "18800", "zipcode": "800", "zhtw": "新興區", "en": "Xinxing Dist."},
305
+ {"id": "18801", "zipcode": "801", "zhtw": "前金區", "en": "Qianjin Dist."},
306
+ {"id": "18802", "zipcode": "802", "zhtw": "苓雅區", "en": "Lingya Dist."},
307
+ {"id": "18803", "zipcode": "803", "zhtw": "鹽埕區", "en": "Yancheng Dist."},
308
+ {"id": "18804", "zipcode": "804", "zhtw": "鼓山區", "en": "Gushan Dist."},
309
+ {"id": "18805", "zipcode": "805", "zhtw": "旗津區", "en": "Qijin Dist."},
310
+ {"id": "18806", "zipcode": "806", "zhtw": "前鎮區", "en": "Qianzhen Dist."},
311
+ {"id": "18807", "zipcode": "807", "zhtw": "三民區", "en": "Sanmin Dist."},
312
+ {"id": "18811", "zipcode": "811", "zhtw": "楠梓區", "en": "Nanzi Dist."},
313
+ {"id": "18812", "zipcode": "812", "zhtw": "小港區", "en": "Xiaogang Dist."},
314
+ {"id": "18813", "zipcode": "813", "zhtw": "左營區", "en": "Zuoying Dist."},
315
+ {"id": "18814", "zipcode": "814", "zhtw": "仁武區", "en": "Renwu Dist."},
316
+ {"id": "18815", "zipcode": "815", "zhtw": "大社區", "en": "Dashe Dist."},
317
+ {"id": "18817", "zipcode": "817", "zhtw": "東沙群島", "en": "Dongsha Islands"},
318
+ {"id": "18819", "zipcode": "819", "zhtw": "南沙群島", "en": "Nansha Islands"},
319
+ {"id": "18820", "zipcode": "820", "zhtw": "岡山區", "en": "Gangshan Dist."},
320
+ {"id": "18821", "zipcode": "821", "zhtw": "路竹區", "en": "Luzhu Dist."},
321
+ {"id": "18822", "zipcode": "822", "zhtw": "阿蓮區", "en": "Alian Dist."},
322
+ {"id": "18823", "zipcode": "823", "zhtw": "田寮區", "en": "Tianliao Dist."},
323
+ {"id": "18824", "zipcode": "824", "zhtw": "燕巢區", "en": "Yanchao Dist."},
324
+ {"id": "18825", "zipcode": "825", "zhtw": "橋頭區", "en": "Qiaotou Dist."},
325
+ {"id": "18826", "zipcode": "826", "zhtw": "梓官區", "en": "Ziguan Dist."},
326
+ {"id": "18827", "zipcode": "827", "zhtw": "彌陀區", "en": "Mituo Dist."},
327
+ {"id": "18828", "zipcode": "828", "zhtw": "永安區", "en": "Yong’an Dist."},
328
+ {"id": "18829", "zipcode": "829", "zhtw": "湖內區", "en": "Hunei Dist."},
329
+ {"id": "18830", "zipcode": "830", "zhtw": "鳳山區", "en": "Fengshan Dist."},
330
+ {"id": "18831", "zipcode": "831", "zhtw": "大寮區", "en": "Daliao Dist."},
331
+ {"id": "18832", "zipcode": "832", "zhtw": "林園區", "en": "Linyuan Dist."},
332
+ {"id": "18833", "zipcode": "833", "zhtw": "鳥松區", "en": "Niaosong Dist."},
333
+ {"id": "18840", "zipcode": "840", "zhtw": "大樹區", "en": "Dashu Dist."},
334
+ {"id": "18842", "zipcode": "842", "zhtw": "旗山區", "en": "Qishan Dist."},
335
+ {"id": "18843", "zipcode": "843", "zhtw": "美濃區", "en": "Meinong Dist."},
336
+ {"id": "18844", "zipcode": "844", "zhtw": "六龜區", "en": "Liugui Dist."},
337
+ {"id": "18845", "zipcode": "845", "zhtw": "內門區", "en": "Neimen Dist."},
338
+ {"id": "18846", "zipcode": "846", "zhtw": "杉林區", "en": "Shanlin Dist."},
339
+ {"id": "18847", "zipcode": "847", "zhtw": "甲仙區", "en": "Jiaxian Dist."},
340
+ {"id": "18848", "zipcode": "848", "zhtw": "桃源區", "en": "Taoyuan Dist."},
341
+ {"id": "18849", "zipcode": "849", "zhtw": "那瑪夏區", "en": "Namaxia Dist."},
342
+ {"id": "18851", "zipcode": "851", "zhtw": "茂林區", "en": "Maolin Dist."},
343
+ {"id": "18852", "zipcode": "852", "zhtw": "茄萣區", "en": "Qieding Dist."},
344
+
345
+ {"id": "19817", "zipcode": "817", "zhtw": "東沙群島", "en": "Dongsha Islands"},
346
+ {"id": "19819", "zipcode": "819", "zhtw": "南沙群島", "en": "Nansha Islands"},
347
+
348
+ {"id": "20880", "zipcode": "880", "zhtw": "馬公市", "en": "Magong City"},
349
+ {"id": "20881", "zipcode": "881", "zhtw": "西嶼鄉", "en": "Xiyu Township"},
350
+ {"id": "20882", "zipcode": "882", "zhtw": "望安鄉", "en": "Wang’an Township"},
351
+ {"id": "20883", "zipcode": "883", "zhtw": "七美鄉", "en": "Qimei Township"},
352
+ {"id": "20884", "zipcode": "884", "zhtw": "白沙鄉", "en": "Baisha Township"},
353
+ {"id": "20885", "zipcode": "885", "zhtw": "湖西鄉", "en": "Huxi Township"},
354
+
355
+ {"id": "21890", "zipcode": "890", "zhtw": "金沙鎮", "en": "Jinsha Township"},
356
+ {"id": "21891", "zipcode": "891", "zhtw": "金湖鎮", "en": "Jinhu Township"},
357
+ {"id": "21892", "zipcode": "892", "zhtw": "金寧鄉", "en": "Jinning Township"},
358
+ {"id": "21893", "zipcode": "893", "zhtw": "金城鎮", "en": "Jincheng Township"},
359
+ {"id": "21894", "zipcode": "894", "zhtw": "烈嶼鄉", "en": "Lieyu Township"},
360
+ {"id": "21896", "zipcode": "896", "zhtw": "烏坵鄉", "en": "Wuqiu Township"},
361
+
362
+ {"id": "22900", "zipcode": "900", "zhtw": "屏東市", "en": "Pingtung City"},
363
+ {"id": "22901", "zipcode": "901", "zhtw": "三地門鄉", "en": "Sandimen Township"},
364
+ {"id": "22902", "zipcode": "902", "zhtw": "霧臺鄉", "en": "Wutai Township"},
365
+ {"id": "22903", "zipcode": "903", "zhtw": "瑪家鄉", "en": "Majia Township"},
366
+ {"id": "22904", "zipcode": "904", "zhtw": "九如鄉", "en": "Jiuru Township"},
367
+ {"id": "22905", "zipcode": "905", "zhtw": "里港鄉", "en": "Ligang Township"},
368
+ {"id": "22906", "zipcode": "906", "zhtw": "高樹鄉", "en": "Gaoshu Township"},
369
+ {"id": "22907", "zipcode": "907", "zhtw": "鹽埔鄉", "en": "Yanpu Township"},
370
+ {"id": "22908", "zipcode": "908", "zhtw": "長治鄉", "en": "Changzhi Township"},
371
+ {"id": "22909", "zipcode": "909", "zhtw": "麟洛鄉", "en": "Linluo Township"},
372
+ {"id": "22911", "zipcode": "911", "zhtw": "竹田鄉", "en": "Zhutian Township"},
373
+ {"id": "22912", "zipcode": "912", "zhtw": "內埔鄉", "en": "Neipu Township"},
374
+ {"id": "22913", "zipcode": "913", "zhtw": "萬丹鄉", "en": "Wandan Township"},
375
+ {"id": "22920", "zipcode": "920", "zhtw": "潮州鎮", "en": "Chaozhou Township"},
376
+ {"id": "22921", "zipcode": "921", "zhtw": "泰武鄉", "en": "Taiwu Township"},
377
+ {"id": "22922", "zipcode": "922", "zhtw": "來義鄉", "en": "Laiyi Township"},
378
+ {"id": "22923", "zipcode": "923", "zhtw": "萬巒鄉", "en": "Wanluan Township"},
379
+ {"id": "22924", "zipcode": "924", "zhtw": "崁頂鄉", "en": "Kanding Township"},
380
+ {"id": "22925", "zipcode": "925", "zhtw": "新埤鄉", "en": "Xinpi Township"},
381
+ {"id": "22926", "zipcode": "926", "zhtw": "南州鄉", "en": "Nanzhou Township"},
382
+ {"id": "22927", "zipcode": "927", "zhtw": "林邊鄉", "en": "Linbian Township"},
383
+ {"id": "22928", "zipcode": "928", "zhtw": "東港鎮", "en": "Donggang Township"},
384
+ {"id": "22929", "zipcode": "929", "zhtw": "琉球鄉", "en": "Liuqiu Township"},
385
+ {"id": "22931", "zipcode": "931", "zhtw": "佳冬鄉", "en": "Jiadong Township"},
386
+ {"id": "22932", "zipcode": "932", "zhtw": "新園鄉", "en": "Xinyuan Township"},
387
+ {"id": "22940", "zipcode": "940", "zhtw": "枋寮鄉", "en": "Fangliao Township"},
388
+ {"id": "22941", "zipcode": "941", "zhtw": "枋山鄉", "en": "Fangshan Township"},
389
+ {"id": "22942", "zipcode": "942", "zhtw": "春日鄉", "en": "Chunri Township"},
390
+ {"id": "22943", "zipcode": "943", "zhtw": "獅子鄉", "en": "Shizi Township"},
391
+ {"id": "22944", "zipcode": "944", "zhtw": "車城鄉", "en": "Checheng Township"},
392
+ {"id": "22945", "zipcode": "945", "zhtw": "牡丹鄉", "en": "Mudan Township"},
393
+ {"id": "22946", "zipcode": "946", "zhtw": "恆春鎮", "en": "Hengchun Township"},
394
+ {"id": "22947", "zipcode": "947", "zhtw": "滿州鄉", "en": "Manzhou Township"},
395
+
396
+ {"id": "23950", "zipcode": "950", "zhtw": "臺東市", "en": "Taitung City"},
397
+ {"id": "23951", "zipcode": "951", "zhtw": "綠島鄉", "en": "Ludao Township"},
398
+ {"id": "23952", "zipcode": "952", "zhtw": "蘭嶼鄉", "en": "Lanyu Township"},
399
+ {"id": "23953", "zipcode": "953", "zhtw": "延平鄉", "en": "Yanping Township"},
400
+ {"id": "23954", "zipcode": "954", "zhtw": "卑南鄉", "en": "Beinan Township"},
401
+ {"id": "23955", "zipcode": "955", "zhtw": "鹿野鄉", "en": "Luye Township"},
402
+ {"id": "23956", "zipcode": "956", "zhtw": "關山鎮", "en": "Guanshan Township"},
403
+ {"id": "23957", "zipcode": "957", "zhtw": "海端鄉", "en": "Haiduan Township"},
404
+ {"id": "23958", "zipcode": "958", "zhtw": "池上鄉", "en": "Chishang Township"},
405
+ {"id": "23959", "zipcode": "959", "zhtw": "東河鄉", "en": "Donghe Township"},
406
+ {"id": "23961", "zipcode": "961", "zhtw": "成功鎮", "en": "Chenggong Township"},
407
+ {"id": "23962", "zipcode": "962", "zhtw": "長濱鄉", "en": "Changbin Township"},
408
+ {"id": "23963", "zipcode": "963", "zhtw": "太麻里鄉", "en": "Taimali Township"},
409
+ {"id": "23964", "zipcode": "964", "zhtw": "金峰鄉", "en": "Jinfeng Township"},
410
+ {"id": "23965", "zipcode": "965", "zhtw": "大武鄉", "en": "Dawu Township"},
411
+ {"id": "23966", "zipcode": "966", "zhtw": "達仁鄉", "en": "Daren Township"},
412
+
413
+ {"id": "24970", "zipcode": "970", "zhtw": "花蓮市", "en": "Hualien City"},
414
+ {"id": "24971", "zipcode": "971", "zhtw": "新城鄉", "en": "Xincheng Township"},
415
+ {"id": "24972", "zipcode": "972", "zhtw": "秀林鄉", "en": "Xiulin Township"},
416
+ {"id": "24973", "zipcode": "973", "zhtw": "吉安鄉", "en": "Ji’an Township"},
417
+ {"id": "24974", "zipcode": "974", "zhtw": "壽豐鄉", "en": "Shoufeng Township"},
418
+ {"id": "24975", "zipcode": "975", "zhtw": "鳳林鎮", "en": "Fenglin Township"},
419
+ {"id": "24976", "zipcode": "976", "zhtw": "光復鄉", "en": "Guangfu Township"},
420
+ {"id": "24977", "zipcode": "977", "zhtw": "豐濱鄉", "en": "Fengbin Township"},
421
+ {"id": "24978", "zipcode": "978", "zhtw": "瑞穗鄉", "en": "Ruisui Township"},
422
+ {"id": "24979", "zipcode": "979", "zhtw": "萬榮鄉", "en": "Wanrong Township"},
423
+ {"id": "24981", "zipcode": "981", "zhtw": "玉里鎮", "en": "Yuli Township"},
424
+ {"id": "24982", "zipcode": "982", "zhtw": "卓溪鄉", "en": "Zhuoxi Township"},
425
+ {"id": "24983", "zipcode": "983", "zhtw": "富里鄉", "en": "Fuli Township"}
426
+ ]
427
+ }
@@ -0,0 +1,5 @@
1
+ module TaiwanDistricts
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace TaiwanDistricts
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module TaiwanDistricts
2
+ VERSION = "0.1.1"
3
+ end
@@ -0,0 +1,54 @@
1
+ require "taiwan_districts/engine"
2
+
3
+ module TaiwanDistricts
4
+ TAIWAN = '00000'
5
+ PATTERN = /(\d{2})(\d{3})/
6
+
7
+ class << self
8
+ def list(lang = 'zhtw', parent_id = '00000')
9
+ result = []
10
+ return result if parent_id.blank?
11
+ city_id = city(parent_id)
12
+ children = data(lang)
13
+ children = children[city_id][:children] if children.has_key?(city_id)
14
+ children.each_key do |id|
15
+ result.push [children[id][:text], id]
16
+ end
17
+
18
+ result.sort! { |a, b| a[1] <=> b[1] }
19
+ result
20
+ end
21
+
22
+ def city(code)
23
+ match(code)[1].ljust(5, '0')
24
+ end
25
+
26
+ private
27
+
28
+ def data(lang)
29
+ @list_lang = 'zh-tw' unless @list_lang
30
+ if @list.nil? or @list_lang != lang
31
+ @list_lang = lang
32
+ @list = {}
33
+ json = JSON.parse(File.read("#{Engine.root}/db/districts.json"))
34
+ districts = json.values.flatten
35
+ districts.each do |district|
36
+ id = district['id']
37
+ text = district["#{@list_lang}"]
38
+ if id.end_with?('000')
39
+ @list[id] = {:text => text, :children => {}}
40
+ else
41
+ city_id = city(id)
42
+ @list[city_id] = {:text => text, :children => {}} unless @list.has_key?(city_id)
43
+ @list[city_id][:children][id] = {:text => text}
44
+ end
45
+ end
46
+ end
47
+ @list
48
+ end
49
+
50
+ def match(code)
51
+ code.match(PATTERN)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :taiwan_districts do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: taiwan_districts
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Vincent Lin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: jquery-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coffee-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Select builder for district of Taiwan cities.
98
+ email:
99
+ - bugtender@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - MIT-LICENSE
105
+ - Rakefile
106
+ - app/assets/javascripts/taiwan_districts/application.js.coffee
107
+ - app/assets/javascripts/taiwan_districts/jquery.taiwan_districts.js.coffee
108
+ - app/controllers/taiwan_districts/application_controller.rb
109
+ - app/controllers/taiwan_districts/data_controller.rb
110
+ - app/views/layouts/taiwan_districts/application.html.erb
111
+ - app/views/taiwan_districts/data/index.html.erb
112
+ - config/routes.rb
113
+ - db/districts.json
114
+ - lib/taiwan_districts.rb
115
+ - lib/taiwan_districts/engine.rb
116
+ - lib/taiwan_districts/version.rb
117
+ - lib/tasks/taiwan_districts_tasks.rake
118
+ homepage: https://github.com/bugtender/TaiwanDistricts
119
+ licenses:
120
+ - MIT
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ requirements: []
137
+ rubyforge_project:
138
+ rubygems_version: 2.5.2
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: Select builder for district of Taiwan cities.
142
+ test_files: []
143
+ has_rdoc: