Edutab Mapの作り方について説明します。
エラーが出るものについて、ターミナルでpip3 importを行う。
細かい文法上の勉強はこちら
PyLearn MAP 01: 地図プロの基礎
PyLearn MAP 02: 人口データとヒートマップ
PyLearn MAP 03: コロプレス図と施設配置
PyLearn MAP 04: 公共施設の最適配置問題
import geocoder as ge
import folium as fl
import folium.map
import folium.plugins
# +++ マーカポイントの経度・緯度取得 +++
TargetName_Research =[
"長岡技術科学大学",
"上越教育大学",
"山梨県立大学",
"日本大学生産工学部",
"デジタルアライアンス"
]
TargetAddress_Research =[
"新潟県長岡市上富岡町1603−1", # 長岡
"新潟県上越市山屋敷町1", # 上越教育大学
"山梨県甲府市飯田5丁目11", # 山梨県立大学飯田c
"千葉県習志野市泉町1丁目2−1", # 日本大学生産工学部津田沼c
"山梨県甲府市北口2丁目12−1" # DA
]
print("+++ 研究開発グループ(経度・緯度) +++")
Points_Research = []
for i in range(len(TargetAddress_Research)):
Points_Research.append(ge.arcgis(TargetAddress_Research[i]).latlng)
print("機関名: ", TargetName_Research[i], " / ", Points_Research[i])
# 地図に乗せる情報
URL_Research = [
"""
長岡技術科学大学<br>
<a href = 'http://kjs.nagaokaut.ac.jp/hirotaka/index.html' target='_blank' rel='noopener noreferrer'>
数理工学宇宙物理学研究室</a><br>
・高橋 弘毅(准教授)<br>
・松下 将也(M1学生)<br>
担当: データサイエンス、人工知能
</a><br>
<img src = "pict/takahashi.jpg" width = "150px">
""",
"""
上越教育大学<br>
<a href = 'https://roomofmizuochi.jimdofree.com' target='_blank' rel='noopener noreferrer'>
水落、大島、榊原研究室</a><br>
・水落 芳明(教授)<br>
・大島 崇行(准教授)<br>
・榊原 範久(准教授)<br>
・古屋 達朗(梨大教諭)<br>
担当: 教育設計、実践評価
</a><br>
<img src = "pict/mizuochi.jpg" width = "150px">
""",
"""
山梨県立大学<br>
<a href = 'http://www2.yamanashi-ken.ac.jp/~kaz/cgi-bin/pukiwiki/index.php' target='_blank' rel='noopener noreferrer'>
八代研究室</a><br>
・八代 一浩(教授)<br>
担当: ネットワーク、システム開発
</a><br>
<img src = "pict/yatsushiro.jpg" width = "150px">
""",
"""
日本大学生産工学部<br>
<a href = 'http://int-info.com' target='_blank' rel='noopener noreferrer'>
知能情報システム工学研究室</a><br>
・大前 佑斗(助教)<br>
担当: データサイエンス、人工知能
</a><br>
<img src = "pict/omae.jpg" width = "150px">
""",
"""
<a href = 'https://www.digital-all.jp' target='_blank' rel='noopener noreferrer'>
デジタルアライアンス</a><br>
・水越 一貴(研究員)<br>
担当: ネットワーク、システム開発
</a><br>
<img src = "pict/mizukoshi.jpg" width = "150px">
"""
]
# <img src = "pict/ochima.jpg" width = "120px"> # 大島先生
# <img src = "pict/sakakibara.jpg" width = "120px"> # 榊原先生
# +++ マーカポイントの経度・緯度取得 +++
TargetName_School =[
"山梨大付属小",
"上越教育大付属小",
"斐太北小",
"塩山北小",
"笛川小"
]
TargetAddress_School =[
"山梨県甲府市北新1丁目4−1", # 梨大付属
"新潟県上越市西城町1丁目7−1", # 上越付属
"新潟県妙高市大字飛田690", # 斐太北
"山梨県甲州市塩山千野3421", # 塩山
"山梨県山梨市牧丘町窪平1200" # 笛川
]
print("+++ 実践校グループ(経度・緯度) +++")
Points_School = []
for i in range(len(TargetAddress_School)):
Points_School.append(ge.arcgis(TargetAddress_School[i]).latlng)
print("機関名: ", TargetName_School[i], " / ", Points_School[i])
# 描画中心座標(群馬の赤城山)
central_point = ge.arcgis("群馬県桐生市黒保根町宿廻").latlng
# 地図生成
m = fl.Map(location = central_point, zoom_start = 8)
# マーカクラスタの生成
cluster = folium.plugins.MarkerCluster(control=False)
m.add_child(cluster)
# 研究開発グループマーカ
group1 = fl.plugins.FeatureGroupSubGroup(cluster, '研究開発グループ')
m.add_child(group1)
for i in range(len(TargetName_Research)):
fl.Marker(location=Points_Research[i],
icon=folium.Icon(color='green'),
popup = URL_Research[i]).add_to(group1)
# 実践校グループマーカ
group2 = fl.plugins.FeatureGroupSubGroup(cluster, '教育実践校')
m.add_child(group2)
for i in range(len(TargetName_School)):
fl.Marker(location=Points_School[i],
icon=folium.Icon(color='red'),
popup = TargetName_School[i]).add_to(group2)
# +++ ここから下は実践のたびに積み上げていく +++
# 2020.02.28 遠隔協調学習(2ひだきた & 3えんざん)
s1, s2 = 2, 3 # 2箇所の学校ID
day = "2020.02" #実施日
Dist1 = fl.plugins.FeatureGroupSubGroup(cluster, day + " 遠隔協調学習")
m.add_child(Dist1)
html_text = day + ": " + TargetName_School[s1] + "と" + TargetName_School[s2] + "が遠隔協調学習を行いました!"
folium.Marker(location=Points_School[s1], icon=folium.Icon(color='red'), popup = TargetName_School[s1]).add_to(Dist1)
folium.Marker(location=Points_School[s2], icon=folium.Icon(color='red'), popup = TargetName_School[s2]).add_to(Dist1)
folium.PolyLine(locations=[Points_School[s1], Points_School[s2]],
tooltip=html_text, color='blue', weight=10).add_to(Dist1)
# 2019.02.28 遠隔協調学習(0付属小 & 1付属小)
s1, s2 = 0, 1 # 2箇所の学校ID
day = "2019.09" #実施日
Dist2 = fl.plugins.FeatureGroupSubGroup(cluster, day + " 遠隔協調学習")
m.add_child(Dist2)
html_text = day + ": " + TargetName_School[s1] + "と" + TargetName_School[s2] + "が遠隔協調学習を行いました!"
folium.Marker(location=Points_School[s1], icon=folium.Icon(color='red'), popup = TargetName_School[s1]).add_to(Dist2)
folium.Marker(location=Points_School[s2], icon=folium.Icon(color='red'), popup = TargetName_School[s2]).add_to(Dist2)
folium.PolyLine(locations=[Points_School[s1], Points_School[s2]],
tooltip=html_text, color='blue', weight=10).add_to(Dist2)
fl.LayerControl(collapsed=False).add_to(m)
最後に、表示・保存して終了。jupyter上では文字化けしますが、生成するHTML上では表示されると思います。
# マップ表示
m
# マップ保存
m.save("EdutabMap.html")
これをサーバにおいて外部公開すれば終了!