/
codes.go
70 lines (66 loc) · 2.15 KB
/
codes.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
package src
import "sort"
// Коды населённых пунктов в Республике Беларусь
// с ж/д станциями и населением >20k
var codeOf = map[string]string{
"Барановичи" :"21015",
"Берёза" :"23294",
"Бобруйск" :"20729",
"Борисов" :"23255",
"Брест" :"153",
"Вилейка" :"23264",
"Витебск" :"154",
"Волковыск" :"23337",
"Гомель" :"155",
"Горки" :"23313",
"Гродно" :"10274",
"Дзержинск" :"23261",
"Жлобин" :"23325",
"Жодино" :"23256",
"Ивацевичи" :"23302",
"Калинковичи" :"23326",
"Кобрин" :"23304",
"Кричев" :"23316",
"Лида" :"21144",
"Лунинец" :"23306",
"Марьина Горка":"23258",
"Минск" :"157",
"Могилёв" :"158",
"Мозырь" :"21274",
"Молодечно" :"23254",
//"Новополоцк" :"23272", только электрички из Полоцка
"Орша" :"10276",
"Осиповичи" :"23249",
"Пинск" :"21510",
"Полоцк" :"10275",
"Речица" :"23330",
"Рогачёв" :"23331",
"Светлогорск" :"23332",
"Слоним" :"23348",
"Слуцк" :"23251",
// "Сморгонь" :"23349", только электрички до Молодечно
"Солигорск" :"23259",
}
// Принадлежит ли строка множеству строк
func inSlice(s string, S []string) bool {
for _,ss := range S {
if ss == s {
return true
}
}
return false
}
// Упорядоченный список городов для селекторов
func allCities() []string {
strongCities := []string{"Минск","Брест","Витебск","Гомель","Гродно","Могилёв"}
cities := []string{}
for k := range codeOf {
if !inSlice(k,strongCities) {
cities = append(cities, k)
}
}
sort.Slice(cities, func(i,j int) bool {
return cities[i] < cities[j]
})
return append(strongCities, cities...)
}