Skip to content

Commit a0ea2cc

Browse files
committed
突合処理が複雑になってきたため日本語で改めて状況を整理
1 parent ad5f282 commit a0ea2cc

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

upsert_dojos_geojson.rb

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
File.open("events_japan.json"){|file| events_japan = JSON.load(file, nil, json_load_options) }
1414
#pp dojos_earth.first, dojos_japan.first, events_japan.first
1515

16-
# Sample format of dojo2dojo.csv:
16+
# dojo2dojo.csv から Dojo 名の突合準備をする
17+
# 【フォーマット】
1718
# Japan登録名 Zen登録名
1819
# ひばりヶ丘 Hibarigaoka
1920
# ...
@@ -62,12 +63,11 @@
6263
japan_count = 0
6364
marked_dojos = []
6465
dojos_earth.each do |dojo|
65-
# Skip dojos that don't have required params to point on DojoMap
66+
# 緯度または経度データが無いクラブはスキップ(地図上に配置できないため)
6667
if dojo[:latitude] && dojo[:longitude]
6768
#pp dojo
6869

69-
# Skip if dojo status is not active
70-
# 活動していない道場は除外
70+
# 以下の stage ステータスを見て活動中ではない道場は除外
7171
#
7272
# stage: => Clubs API (renewal in 2023/12)
7373
# 0: In planning => PENDING
@@ -77,26 +77,28 @@
7777
# 4: 活動していません => ??? (Maybe deleted or PENDING?)
7878
# Clubs API https://clubs-api.raspberrypi.org/
7979
#
80-
# MEMO: The first conditions when using the outdated CoderDojo API (aka Zen API).
80+
# MEMO: Clubs API (旧: Zen API) リニューアル前は下記コードが使えた
8181
# if dojo[:geoPoint] && dojo[:country] && dojo[:stage] != 4
8282
next unless ['OPEN', 'REGISTER', 'FULL'].include? dojo[:stage]
8383

84-
# Show only active dojos in Japan area on DojoMap
84+
# アクティブで、地域情報が日本 (JP) の場合、地図上への配置処理に進む
8585
if dojo[:countryCode] == "JP"
8686

87-
# Skip if not existing OR marked as 'Inactive' by Japan DB
87+
# dojo2dojo.csv に無かったらスキップ
88+
# Japan DB 上で Inactive ならスキップ (Clubs DB より厳密に管理されているため)
8889
next if zen2japan[dojo[:name]].nil?
8990
next if name2is_active[zen2japan[dojo[:name]]] == false
9091

91-
# Convert Zen name into Japan name by Hash
92+
# Clubs API 上のクラブ名を Japan DB 上のクラブ前に変換する by Hash
9293
dojo[:name] = zen2japan[dojo[:name]] if zen2japan[dojo[:name]]
9394

94-
# Count active dojo in Japan displayed on DojoMap for debugging
95+
# デバッグ用: 地図上に配置したクラブ数をコンソールに出力する
9596
#japan_count = japan_count.succ
9697
#p "#{japan_count.to_s.rjust(3, '0')}: #{dojo[:name]}"
9798
end
9899

99-
# Compose 'description' passned to Geojson
100+
# 各マーカー押下時の説明文 ('description') を生成する
101+
# ロゴ画像がまだ無い場合はデフォルトのロゴで代用
100102
if name2logo[dojo[:name]].nil?
101103
# for Dojos overseas
102104
description = <<~HTML
@@ -105,11 +107,11 @@
105107
<a target='_blank' rel='noopener'
106108
href='http://zen.coderdojo.com/dojos/#{dojo[:urlSlug]}'>連絡先を見る</a>
107109
HTML
108-
else
109-
# for Dojos regeisted in coderdojo.jp
110110

111-
# Skip if multiple-dojos-in-one style in Japan DB to be unique
112-
# e.g. '西宮・梅田', '藤井寺・柏原', '大田・邑南、他'
111+
# ロゴ画像がある場合はそのまま使用する
112+
else
113+
# 複数道場で一括登録している場合は1つのみ地図上に配置する
114+
# 一括登録例: '西宮・梅田', '藤井寺・柏原', '大田・邑南、他'
113115
next if marked_dojos.include? dojo[:name]
114116
marked_dojos << dojo[:name]
115117

@@ -122,7 +124,8 @@
122124
HTML
123125
end
124126

125-
# Mark dojo to DojoMap
127+
# 地図上に配置するため GeoJSON 形式に変換する
128+
# https://ja.wikipedia.org/wiki/GeoJSON
126129
features << {
127130
type: "Feature",
128131
geometry: {

0 commit comments

Comments
 (0)