画像投稿と地図表示
投稿された画像を位置情報とともに保存し、地図上にピンとして表示できる構成にしました。

本格運用に向けて調整中
地域の環境情報を市民が投稿・共有できるマッピングアプリ。位置情報と写真を組み合わせて、環境データを可視化します。

依頼人から、地域の環境データを記録し、今後の環境保護活動に活用したいという相談を受けました。具体的には、現場で撮影した画像を地図上に掲載し、一般ユーザーが閲覧できる仕組みや、管理者が投稿内容を確認・選別できる管理画面が求められていました。 既存のマップアプリでは、画像投稿を地図上で扱う機能や、複数ユーザーの投稿を管理者が確認して公開判断するフローが十分ではなかったため、本アプリでは画像投稿から地図表示、管理者による確認・公開管理までを一連の流れとして設計しました。
画像と位置情報を閲覧しやすい形に設計し、投稿後の確認や公開判断まで含めて一元管理できる状態を目指しました。
現場で撮影した画像を、地図上の地点と自然に結びつけて共有したい。
投稿後の確認、承認、公開判断までを別ツールに分散させず一画面で扱いたい。
蓄積された環境データをユーザー側ではアプリの地図上で閲覧可能にしたい。 管理者はデーターベースのように投稿を閲覧し、そのデータを活用したい。
投稿された画像を位置情報とともに保存し、地図上にピンとして表示できる構成にしました。

管理者が投稿内容を確認し、公開可否を判断できる流れを用意しています。 また、管理画面から投稿データの地図掲載の承認・却下フローも実装しました。

カテゴリごとに投稿をフィルタリングし、必要な環境情報に素早く到達できるようにしました。

環境データの投稿が可能です。カメラ起動するボタンがあり撮影後に撮影地点が記録されます。

投稿画像そのものからExif情報を用いて位置情報を取得することは、Webアプリ上では難しいため、アプリ起動時に現在地を取得開始し、撮影時に位置情報を確定するフローを実装して対応しました。
認証、データ保存、画像保管を同一基盤でまとめ、運用負荷を抑えています。
Maplibre を採用し、投稿件数が増えてもクラスターとしてピンをまとめる・ばらける動作を自動化し、閲覧体験の向上を意識しました。
デプロイにはVercelを採用し、Imageコンポーネントの利用によるキャッシュの最適化を行いました。 また、管理画面の画像はVercelキャッシュではなく、Supabaseキャッシュを用いることによる負荷分散をしました。