-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcity_code.go
86 lines (81 loc) · 2.82 KB
/
city_code.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package main
import (
"errors"
"github.com/lithammer/fuzzysearch/fuzzy"
)
var cityCodeMap = map[string]string{
"東京都千代田区": "13101",
"東京都中央区": "13102",
"東京都港区": "13103",
"東京都新宿区": "13104",
"東京都文京区": "13105",
"東京都台東区": "13106",
"東京都墨田区": "13107",
"東京都江東区": "13108",
"東京都品川区": "13109",
"東京都目黒区": "13110",
"東京都大田区": "13111",
"東京都世田谷区": "13112",
"東京都渋谷区": "13113",
"東京都中野区": "13114",
"東京都杉並区": "13115",
"東京都豊島区": "13116",
"東京都北区": "13117",
"東京都荒川区": "13118",
"東京都板橋区": "13119",
"東京都練馬区": "13120",
"東京都足立区": "13121",
"東京都葛飾区": "13122",
"東京都江戸川区": "13123",
"東京都八王子市": "13201",
"東京都立川市": "13202",
"東京都武蔵野市": "13203",
"東京都三鷹市": "13204",
"東京都青梅市": "13205",
"東京都府中市": "13206",
"東京都昭島市": "13207",
"東京都調布市": "13208",
"東京都町田市": "13209",
"東京都小金井市": "13210",
"東京都小平市": "13211",
"東京都日野市": "13212",
"東京都東村山市": "13213",
"東京都国分寺市": "13214",
"東京都国立市": "13215",
"東京都福生市": "13218",
"東京都狛江市": "13219",
"東京都東大和市": "13220",
"東京都清瀬市": "13221",
"東京都東久留米市": "13222",
"東京都武蔵村山市": "13223",
"東京都多摩市": "13224",
"東京都稲城市": "13225",
"東京都羽村市": "13227",
"東京都あきる野市": "13228",
"東京都西東京市": "13229",
"東京都西多摩郡瑞穂町": "13303",
"東京都西多摩郡日の出町": "13305",
"東京都西多摩郡檜原村": "13307",
"東京都西多摩郡奥多摩町": "13308",
"東京都大島町": "13361",
"東京都利島村": "13362",
"東京都新島村": "13363",
"東京都神津島村": "13364",
"東京都三宅島三宅村": "13381",
"東京都御蔵島村": "13382",
"東京都八丈島八丈町": "13401",
"東京都青ヶ島村": "13402",
"東京都小笠原村": "13421",
}
func getCityCodeFuzzy(input string) (string, error) {
cityNames := make([]string, 0, len(cityCodeMap))
for name := range cityCodeMap {
cityNames = append(cityNames, name)
}
ranks := fuzzy.RankFind(input, cityNames)
if len(ranks) == 0 {
return "", errors.New("一致する市区名が見つかりません")
}
bestMatch := ranks[0].Target
return cityCodeMap[bestMatch], nil
}