taiwan_districts 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: