|
13 | 13 | File.open("events_japan.json"){|file| events_japan = JSON.load(file, nil, json_load_options) }
|
14 | 14 | #pp dojos_earth.first, dojos_japan.first, events_japan.first
|
15 | 15 |
|
16 |
| -# Sample format of dojo2dojo.csv: |
| 16 | +# dojo2dojo.csv から Dojo 名の突合準備をする |
| 17 | +# 【フォーマット】 |
17 | 18 | # Japan登録名 Zen登録名
|
18 | 19 | # ひばりヶ丘 Hibarigaoka
|
19 | 20 | # ...
|
|
62 | 63 | japan_count = 0
|
63 | 64 | marked_dojos = []
|
64 | 65 | dojos_earth.each do |dojo|
|
65 |
| - # Skip dojos that don't have required params to point on DojoMap |
| 66 | + # 緯度または経度データが無いクラブはスキップ(地図上に配置できないため) |
66 | 67 | if dojo[:latitude] && dojo[:longitude]
|
67 | 68 | #pp dojo
|
68 | 69 |
|
69 |
| - # Skip if dojo status is not active |
70 |
| - # 活動していない道場は除外 |
| 70 | + # 以下の stage ステータスを見て活動中ではない道場は除外 |
71 | 71 | #
|
72 | 72 | # stage: => Clubs API (renewal in 2023/12)
|
73 | 73 | # 0: In planning => PENDING
|
|
77 | 77 | # 4: 活動していません => ??? (Maybe deleted or PENDING?)
|
78 | 78 | # Clubs API https://clubs-api.raspberrypi.org/
|
79 | 79 | #
|
80 |
| - # MEMO: The first conditions when using the outdated CoderDojo API (aka Zen API). |
| 80 | + # MEMO: Clubs API (旧: Zen API) リニューアル前は下記コードが使えた |
81 | 81 | # if dojo[:geoPoint] && dojo[:country] && dojo[:stage] != 4
|
82 | 82 | next unless ['OPEN', 'REGISTER', 'FULL'].include? dojo[:stage]
|
83 | 83 |
|
84 |
| - # Show only active dojos in Japan area on DojoMap |
| 84 | + # アクティブで、地域情報が日本 (JP) の場合、地図上への配置処理に進む |
85 | 85 | if dojo[:countryCode] == "JP"
|
86 | 86 |
|
87 |
| - # Skip if not existing OR marked as 'Inactive' by Japan DB |
| 87 | + # dojo2dojo.csv に無かったらスキップ |
| 88 | + # Japan DB 上で Inactive ならスキップ (Clubs DB より厳密に管理されているため) |
88 | 89 | next if zen2japan[dojo[:name]].nil?
|
89 | 90 | next if name2is_active[zen2japan[dojo[:name]]] == false
|
90 | 91 |
|
91 |
| - # Convert Zen name into Japan name by Hash |
| 92 | + # Clubs API 上のクラブ名を Japan DB 上のクラブ前に変換する by Hash |
92 | 93 | dojo[:name] = zen2japan[dojo[:name]] if zen2japan[dojo[:name]]
|
93 | 94 |
|
94 |
| - # Count active dojo in Japan displayed on DojoMap for debugging |
| 95 | + # デバッグ用: 地図上に配置したクラブ数をコンソールに出力する |
95 | 96 | #japan_count = japan_count.succ
|
96 | 97 | #p "#{japan_count.to_s.rjust(3, '0')}: #{dojo[:name]}"
|
97 | 98 | end
|
98 | 99 |
|
99 |
| - # Compose 'description' passned to Geojson |
| 100 | + # 各マーカー押下時の説明文 ('description') を生成する |
| 101 | + # ロゴ画像がまだ無い場合はデフォルトのロゴで代用 |
100 | 102 | if name2logo[dojo[:name]].nil?
|
101 | 103 | # for Dojos overseas
|
102 | 104 | description = <<~HTML
|
|
105 | 107 | <a target='_blank' rel='noopener'
|
106 | 108 | href='http://zen.coderdojo.com/dojos/#{dojo[:urlSlug]}'>連絡先を見る</a>
|
107 | 109 | HTML
|
108 |
| - else |
109 |
| - # for Dojos regeisted in coderdojo.jp |
110 | 110 |
|
111 |
| - # Skip if multiple-dojos-in-one style in Japan DB to be unique |
112 |
| - # e.g. '西宮・梅田', '藤井寺・柏原', '大田・邑南、他' |
| 111 | + # ロゴ画像がある場合はそのまま使用する |
| 112 | + else |
| 113 | + # 複数道場で一括登録している場合は1つのみ地図上に配置する |
| 114 | + # 一括登録例: '西宮・梅田', '藤井寺・柏原', '大田・邑南、他' |
113 | 115 | next if marked_dojos.include? dojo[:name]
|
114 | 116 | marked_dojos << dojo[:name]
|
115 | 117 |
|
|
122 | 124 | HTML
|
123 | 125 | end
|
124 | 126 |
|
125 |
| - # Mark dojo to DojoMap |
| 127 | + # 地図上に配置するため GeoJSON 形式に変換する |
| 128 | + # https://ja.wikipedia.org/wiki/GeoJSON |
126 | 129 | features << {
|
127 | 130 | type: "Feature",
|
128 | 131 | geometry: {
|
|
0 commit comments