これは、WEB上に、見知らぬ人たちが各々、撮ったさくらの写真をアップロードし、それらを地図上に表示するというサイトだ。
まだ完全版ではないが、下記のURLで既に利用できる。
是非アクセスして写真を登録してほしい。
スマホ等の設定の注意点が2つある。①プライバシーの設定等で、位置情報を知らせる設定にしておくこと②カメラの設定で、位置情報を含ませる設定にしておくこと。
今の初版では、匿名であればよく、パスワードの設定は必要ない。またメールアドレスなどの個人情報も登録の必要がない。とはいえ、写真とその位置情報の掲載は、間接的に自分の情報の公開にもつながりかねない。今回の初版は、その地図上の写真を誰(登録名)がアップロードしたかわからないようになっているし、アップロードした人であれば、その写真をWEB上からすみやかに削除できるようになっている。それでよければ、登録してみてほしい。
これは、将来的に、災害時に、各自がスマホ等で写真をとったものをこのWEB上にアップロードし、災害情報につなげるための雛形である。
一般の人が撮った写真や動画は、ニュースやSNS上にあがるように既になっている。このWEBサイトは、みんながWEB上で、写真とその位置情報、日時が、簡単に投稿でき、確認できることが少し新しい。
① このプロトタイプMapNS_Pro~個人写真のアルバム管理に利用できる~
MapNS_Pro
/
├── app.py
├── templates/
│ ├── index.html
│ └── result.html
│ └── leaflet.css / leaflet.js(CDNでも可)
├── uploads/
└── requirements.txt
Python-Flaskをつくって作成していった。
下記の作業の延長線上にある
個人でつかうものなので、写真の分類を「プロジェクト」としてつくり、新規プロジェクト作成して写真追加、あるいは既につくったプロジェクトに写真追加できるようにした。
App.pyを起動し、http://127.0.0.1:5000/ を表示すると下記のような画面が出現。
② MapNS_SakuraEdition~みんなで作るさくら情報マップ~
基本は①の改良である。プロジェクトは複数でなく「みんなで作るさくら情報マップ」ひとつだけに減る。
仮名でよい(パスワード登録、個人情報登録は不要)が名前登録画面をつくり、協力者を一覧表示。写真とコメントを投稿 → 地図にマッピング後も、自分の投稿だけ削除できるように。また、写真はだれが投稿したかはわからないようにした。また、 スマホでの閲覧&投稿にも配慮した。
そして難関は、PythonanywhereへのこのPython-Flaskファイルのデプロイ
ここでまた手順を示すが、ChatGPT4の助けがなかったら今回も達成できなかったし、達成しても何か狐につままれたかんじ(ピンとこない)。
1️⃣ PythonAnywhere にログイン
https://www.pythonanywhere.com にアクセス
無料アカウント登録(Beginner プランでOK)
ダッシュボードに入る
2️⃣ ダッシュボードの「Files」⇒ZIPファイルをアップロード&展開
ダッシュボードの「Files」をクリック
下にある「Upload a file」から MapNS_SakuraEdition_v3.zip をアップロード
アップロード後、ターミナル or Bash で以下を実行:
bash
unzip MapNS_SakuraEdition_v3.zip
👉 すると /home/kojikoji(your_username)/MapNS_SakuraEdition_v3/ が展開される!
(そこには、Pythonanywhere独自のDirectoryやFileが数多く混在していて、一見、展開できてないようにもえるが、よくみると展開されていることがわかる)
3️⃣ ダッシュボードの「WEB」⇒ Flaskアプリを Web App に登録
上部メニューの「Web」をクリック
「Add a new web app」ボタン → Manual Configuration を選ぶ(Flask)
Pythonのバージョンは 3.x(新しめ)を選ぶ
「Source code」ディレクトリには:/home/kojikoji(your_username)/MapNS_SakuraEdition_v3
WSGIファイルを編集(リンクが出てくる)→ wsgi.py の中身を次のように:
import sys
import os
from pathlib import Path
# 追加
project_home = str(Path("/home/your_username/MapNS_SakuraEdition_v3").resolve())
if project_home not in sys.path:
sys.path.append(project_home)
os.chdir(project_home)
from app import app as application # ←app.py の Flask app を起動
4️⃣ ダッシュボードの「Console」⇒Flask の依存ライブラリをインストール
左側メニュー「Consoles」 → 「Bash」を開いて以下を実行:
bash
pip install --user flask pillow exifread
5️⃣ ダッシュボードの「WEB」⇒Web アプリを再起動して公開!
「Web」ページに戻って「Reload」をクリック
(注意)Warning: No virtualenv detected at this path. Do you need to create it? これは「仮想環境(virtualenv)が正しく設定されていない」という意味ですが、今回の構成は「仮想環境なしのグローバル環境」で十分動く構成になっているのでこの警告は無視して大丈夫。
URL https://kojikoji.pythonanywhere.com/ にアクセスすると、 MapNS Sakura Edition がネット上に表示される
今回の「みんなで作るさくら情報マップ」は、災害時に、各自がスマホ等で写真をとったものをこのWEB上の地図にアップロードし、災害情報につなげるための雛形となりうる。