管理者マニュアル
対象環境:PHP 7.4 以上 / 主要ブラウザ対応
「写真マップ (PictMap)」は、写真をインタラクティブな地図上に配置して共有できるWebアプリケーションです。PHPが動作するWebサーバーさえあれば、データベースを必要とせず、手軽に導入できます。
| 用途 | 説明 |
|---|---|
| 旅行写真の共有 | 旅行先で撮影した写真を地図上に配置し、旅の記録として公開・共有できます。 |
| グルメマップ | お気に入りのレストランやカフェの写真を地図上にまとめ、オリジナルのグルメマップを作成できます。 |
| 建設現場管理 | 工事現場の写真を位置情報付きで記録し、進捗管理や報告に活用できます。 |
| 不動産物件管理 | 物件の外観・内観写真を地図上に配置し、所在地と合わせて管理できます。 |
| 地域情報の記録 | 地域のイベントや名所の写真を地図にまとめ、地域紹介として活用できます。 |
写真マップ (PictMap) は、以下のオープンソースライブラリおよびサービスを利用しています。ご利用の際は、各ライブラリ・サービスのライセンスおよび利用規約もあわせてご確認ください。
| ライブラリ / サービス | 用途 | ライセンス / 備考 |
|---|---|---|
| OpenStreetMap | 地図タイルの表示 | Open Data Commons Open Database License (ODbL)。無料で利用可能。 |
| Leaflet | 地図の操作・表示ライブラリ | BSD 2-Clause License。無料で利用可能。 |
| Leaflet.markercluster | マーカーのクラスタリング表示 | MIT License。無料で利用可能。 |
| Google Maps API | Google Maps の表示(オプション) | Google の利用規約に準拠。APIキーが必要。使用量に応じて課金が発生する場合があります。 |
| Vue.js 3 | フロントエンドフレームワーク | MIT License。無料で利用可能。 |
| heic2any | HEIC/HEIF画像のJPEG変換 | MIT License。無料で利用可能。 |
| exifr | 写真のEXIF情報(GPS等)読み取り | MIT License。無料で利用可能。 |
| 項目 | 要件 |
|---|---|
| Webサーバー | Apache または Nginx(PHPが動作すること) |
| PHP バージョン | PHP 7.4 以上(PHP 8.x 推奨) |
| PHP 拡張モジュール | GD ライブラリ(画像処理用)、EXIF 拡張(写真情報読み取り用) |
| ディスク容量 | 写真の枚数に応じて必要(目安:写真1枚あたり約200KB〜1MB) |
| ブラウザ | 対応状況 |
|---|---|
| Google Chrome | 2026/2 動作確認済み |
| Microsoft Edge | 2026/2 動作確認済み |
| Safari(iOS / macOS | 2026/2 動作確認済み |
| Mozilla Firefox | 2026/2 動作確認済み |
| 形式 | 説明 |
|---|---|
| JPEG (.jpg, .jpeg) | 標準的な写真形式。そのままアップロード可能。 |
| HEIC / HEIF (.heic, .heif) | iPhoneの標準撮影形式。アップロード時にJPEG形式に自動変換されます。 |
| PNG (.png) | そのままアップロード可能。位置情報の修正が必要。 |
| GIF (.gif) | そのままアップロード可能。位置情報の修正が必要。 |
写真マップをレンタルサーバーに設置する手順を説明します。
pictmap フォルダをサーバーの公開ディレクトリ(通常は /public_html/ や /htdocs/ の下)にアップロードします。/public_html/pictmap/
data/ ディレクトリに書き込み権限が必要です。FTPソフトでパーミッションを 755 に設定してください。
https://example.com/pictmap/アップロード後のディレクトリ構成は以下のとおりです。
pictmap/
├── index.php ... メインファイル
├── api/ ... PHP API ファイル群
├── assets/ ... CSS・JavaScript ファイル群
└── data/ ... データ保存ディレクトリ(自動生成)
├── .htaccess ... アクセス制御(自動生成)
├── settings.json ... サイト設定ファイル
├── users.json ... ユーザー情報ファイル
├── photos.json ... 写真情報ファイル
└── photos/ ... アップロード写真・サムネイルの保存先
data/ ディレクトリには、初回アクセス時に .htaccess が自動生成され、JSON ファイルやバックアップへの直接アクセスが禁止されます(画像ファイルのみ許可)。Apache 以外の Web サーバー(Nginx 等)をご利用の場合は、同等のアクセス制限を手動で設定してください。
写真マップに初めてアクセスすると、3ステップの初期セットアップウィザードが自動的に表示されます。このウィザードで基本的な設定を行います。
最初に、管理者アカウントを作成します。管理者は写真マップのすべての機能と設定にアクセスできます。
| 入力項目 | 必須 | 説明 |
|---|---|---|
| ユーザーID | 必須 | ログインに使用するIDです。半角英数字で入力してください。 |
| ユーザー表示名 | 必須 | 画面上に表示される名前です。日本語も使用できます。 |
| メールアドレス | 任意 | 管理者の連絡先メールアドレスです。省略可能です。登録しておくとパスワードを忘れた際にリセットできます。 |
| パスワード | 必須 | ログインに使用するパスワードです。4文字以上で設定してください。 |
入力が完了したら 次へ ボタンをクリックします。
写真マップの基本設定を行います。
| 入力項目 | 説明 |
|---|---|
| サイト名 | 写真マップのタイトルです。画面上部に表示されます。 例:「旅の写真マップ」「グルメマップ」 |
| 地図の種類 | 使用する地図を選択します。 OpenStreetMap ── 無料で利用可能。APIキー不要。 Google Maps ── Google Maps API キーが必要。使用量に応じて課金の可能性あり。 |
| Google API キー | Google Maps を選択した場合のみ入力が必要です。取得方法は付録9.1を参照してください。 |
| 初期表示位置 | 地図の初期表示位置です。地図上のマーカーをドラッグして設定できます。 デフォルト:東京(35.6762, 139.7674) |
入力が完了したら 次へ ボタンをクリックします。
設定内容の確認画面が表示されます。問題なければ 利用開始 ボタンをクリックしてください。写真マップのメイン画面が表示され、すぐにご利用いただけます。
セットアップ完了後、サイト名や権限などの詳細設定は、メニューの「設定」から変更できます。
管理者としてログイン後、画面左上のハンバーガーメニュー(三本線のアイコン)から 設定 を選択することで、各種設定を変更できます。設定項目はカテゴリごとに分かれています。
| 項目 | 説明 |
|---|---|
| サイト名 | 写真マップのタイトル。画面上部のヘッダーに表示されます。 |
| サイト説明 | サイトの説明文です。サイドメニューの「このサイトについて」に表示されます。 |
| 項目 | 説明 | 初期値 |
|---|---|---|
| 地図の種類 | OpenStreetMap または Google Maps を選択します。 | OpenStreetMap |
| Google API キー | Google Maps を使用する場合に入力します。検証 ボタンでキーの有効性を確認できます。 | (なし) |
| デフォルト位置(緯度) | 地図の初期表示位置の緯度。 | 35.6812 |
| デフォルト位置(経度) | 地図の初期表示位置の経度。 | 139.7671 |
| デフォルトズーム | 地図の初期拡大レベル。1(世界全体)〜 20(最大拡大)の範囲で指定します。 | 13 |
| 項目 | 説明 | 設定範囲 | 初期値 |
|---|---|---|---|
| サムネイルサイズ | 画面下部のサムネイルバーに表示される写真の大きさ(ピクセル)。 | 50〜300px | 120px |
| 最大表示件数 | 地図上とサムネイルバーに一度に表示する写真の最大件数。 | 10〜50000件 | 50件 |
| ポップアップ表示 | マーカークリック時のポップアップの表示方法を選択します。 | ― | ― |
| 項目 | 選択肢 | 説明 |
|---|---|---|
| 投稿権限 |
誰でも ログインユーザーのみ 管理者のみ |
写真をアップロードできるユーザーの範囲を設定します。 |
| 閲覧権限 |
公開(誰でも閲覧可能) ログインユーザーのみ |
写真マップを閲覧できるユーザーの範囲を設定します。 |
| ユーザー自身による新規登録 |
許可する 許可しない |
ログイン画面に「新規登録」リンクを表示し、ユーザー自身がアカウントを作成できるようにします。登録されたユーザーは一般ユーザー権限になります。 |
| 項目 | 説明 | 設定範囲 | 初期値 |
|---|---|---|---|
| 最大画像サイズ | アップロードされた画像の長辺を、指定したピクセル数以下にリサイズして保存します。サーバーの容量節約に有効です。 | 400〜4000px | 1200px |
設定画面の最下部に、折りたたまれた状態で「全データ初期化」セクションがあります。クリックして展開すると、全データの初期化を実行できます。
写真マップの画面は、大きく分けて以下の要素で構成されています。
| 位置 | 要素 | 説明 |
|---|---|---|
| 左端 | ハンバーガーメニュー(三本線アイコン) | サイドメニューを開きます。ログイン、設定変更、管理機能などにアクセスできます。 |
| 中央 | サイトタイトル | 設定したサイト名が表示されます。 |
| 右端 | 地図切替ボタン | OpenStreetMap と Google Maps を切り替えます(Google API キー設定時のみ表示)。 |
| 右端 | +(追加)ボタン | 写真の新規登録モーダルを開きます。 |
ハンバーガーメニューをクリックすると、画面左側からスライドして表示されます。
画面の大部分を占めるインタラクティブな地図です。登録された写真の位置にマーカー(ピン)が表示されます。マーカーをクリックすると写真のポップアップが表示されます。
地図の左下には、現在の表示範囲内に表示されているマーカーの件数が半透明のバッジで表示されます。
登録済みの写真がサムネイル画像として横一列に並んで表示されます。左右にスクロールして閲覧できます。サムネイルをクリックすると、その写真の詳細表示と地図の移動が行われます。
地図上の 虫眼鏡アイコン(検索ボタン)をクリックすると、写真検索モーダルが表示されます。投稿者、撮影日、コメント、タグ、住所で写真を絞り込むことができます。詳しくは 7.10 写真検索 を参照してください。
ヘッダー右側の地図切替ボタンで、OpenStreetMap と Google Maps を切り替えることができます。このボタンは、Google API キーが設定されている場合のみ表示されます。
地図上に写真を登録する方法は2通りあります。
登録モーダルでは、以下のいずれかの方法で写真を選択します。
対応形式:JPEG、PNG、GIF、HEIC/HEIF
写真にGPS情報(EXIF)が含まれている場合、以下の処理が自動的に行われます。
GPS情報が含まれていない場合は、手動でマーカーの位置を調整してください。
写真登録モーダルには、位置調整用のミニ地図が表示されます。ミニ地図上のマーカーをドラッグすることで、写真の撮影場所を正確に指定できます。GPS情報から自動設定された位置を微調整したい場合にも便利です。
| 項目 | 説明 | 制限 |
|---|---|---|
| コメント | 写真に関するコメントや説明文を入力できます。 | 最大1000文字 |
| タグ | 写真の分類に使えるタグを追加できます。テキストを入力して Enter キーで確定します。 | 最大20個 / 1タグ最大50文字 |
登録する ボタンをクリックすると、写真がサーバーにアップロードされます。
サーバー側では以下の処理が自動的に行われます。
登録された写真を詳しく見るには、以下のいずれかの操作を行います。
写真の詳細モーダルが表示され、以下の情報を確認できます。
| 表示項目 | 説明 |
|---|---|
| 写真(拡大表示) | 登録された写真が大きく表示されます。 |
| コメント | 登録時に入力したコメントが表示されます。 |
| タグ | 登録時に設定したタグが表示されます。 |
| 投稿者 | 写真を投稿したユーザーの表示名が表示されます(ゲストユーザーの投稿には表示されません)。 |
| 撮影日時 | 写真のEXIF情報から取得した撮影日時が表示されます。 |
| 座標 | 写真の緯度・経度が表示されます。 |
| 住所 | 座標から逆ジオコーディングにより取得された住所が表示されます。一度取得された住所はキャッシュされ、次回以降は高速に表示されます。 |
| リンク作成 | 写真詳細画面のフッターにある リンク作成 ボタンで、この写真へのリンクURLをクリップボードにコピーできます。リンクを開くと、地図上にその写真のマーカーとポップアップが表示されます。 |
詳細表示中、地図は自動的に写真の撮影場所に移動します。
登録済みの写真のコメントやタグを編集できます。
写真編集モーダルにはミニ地図が表示され、現在の写真の位置がマーカーで示されます。マーカーをドラッグすることで、写真の撮影場所を変更できます。
パスワードを忘れた場合、メールアドレスが登録されていれば、メールによるパスワードリセットが可能です。
管理者は、ユーザー管理画面から任意のユーザーのパスワードを直接変更できます。詳しくは 8.2 ユーザー管理 を参照してください。
管理者が設定画面で「ユーザー自身による新規登録」を許可している場合、ログイン画面から新規ユーザー登録を行えます。
| 項目 | 必須 | 説明 |
|---|---|---|
| ユーザーID | 必須 | 半角英数字とアンダースコアで入力します。 |
| ユーザー表示名 | 必須 | 画面上に表示される名前です。 |
| メールアドレス | 任意 | パスワードリセット時に使用します。登録しておくとパスワードを忘れた際にリセットできます。 |
| パスワード | 必須 | 4文字以上で設定してください。 |
| パスワード(確認) | 必須 | 確認のためもう一度入力します。 |
地図右下の 虫眼鏡アイコン(検索ボタン)をクリックすると、写真検索モーダルが表示されます。以下の条件で写真を絞り込むことができます(モーダル上の表示順)。
| 検索条件 | 説明 |
|---|---|
| 投稿者 | 投稿者のユーザーIDまたは表示名で部分一致検索します。 |
| 撮影日 | 開始日と終了日を指定して、撮影日の範囲で絞り込みます。 |
| コメント | コメントのキーワードで部分一致検索します。 |
| タグ | タグ名で部分一致検索します。 |
| 住所 | 写真の住所情報で部分一致検索します。 |
各検索条件に値を入力して 検索 ボタンをクリックすると、条件に一致する写真のみが地図上とサムネイルバーに表示されます。複数の条件を入力した場合は、すべての条件を満たす写真(AND検索)が表示されます。
検索中は、虫眼鏡アイコンにフィルター件数のバッジが表示され、サムネイルバーの左端に「件数/全件数」が表示されます。クリア ボタンまたはサムネイルバーの × ボタンで検索を解除できます。
検索が実行されている状態で、検索モーダル下部に表示される リンク作成 ボタンをクリックすると、現在の検索条件を含むURLが生成されます。このURLを共有すると、同じ検索条件で写真を表示できます。
個別の写真を直接共有するためのリンクを作成できます。
共有されたリンクを開くと、地図が写真の撮影場所に移動し、マーカーのポップアップ(サムネイル付き)が自動的に表示されます。
管理者としてログインすると、サイドメニューから以下の管理機能にアクセスできます。これらの機能は管理者のみが使用できます。
サイドメニューから 写真管理 を選択すると、登録されたすべての写真を一覧表示で管理できます。
| 列 | 説明 |
|---|---|
| チェックボックス | 一括削除する写真を選択します。 |
| サムネイル | 写真のサムネイル画像。クリックすると詳細表示されます。 |
| ID | 写真の識別番号。 |
| 投稿者 | 写真をアップロードしたユーザー名。 |
| 登録日時 | 写真が登録された日時。 |
| 操作 | 個別の削除ボタン。 |
サイドメニューから ユーザー管理 を選択すると、ユーザーの管理画面が表示されます。
| 列 | 説明 |
|---|---|
| ユーザーID | ログインに使用するID。 |
| 表示名 | 画面上に表示される名前。 |
| メールアドレス | 登録されたメールアドレス。 |
| 役割 | 「管理者」または「一般ユーザー」。 |
| 作成日 | アカウントが作成された日時。 |
| 最終ログイン | ユーザーが最後にログインした日時。未ログインの場合は「未ログイン」と表示されます。 |
| 項目 | 必須 | 説明 |
|---|---|---|
| ユーザーID | 必須 | 半角英数字のログインID。 |
| ユーザー表示名 | 必須 | 画面上に表示される名前。 |
| メールアドレス | 任意 | 連絡先メールアドレス。 |
| パスワード | 必須 | 4文字以上のパスワード。 |
| 役割 | 必須 | 「管理者」または「一般ユーザー」を選択。 |
各ユーザーの行にある PW変更 ボタンで、ユーザーのパスワードを直接変更できます。
各ユーザーの行にある 削除 ボタンで、ユーザーを削除できます。
サイドメニューから デバッグ を選択すると、システムの診断・デバッグ画面が表示されます。通常のご利用では操作する必要はありません。問題が発生した場合のトラブルシューティングに使用します。
| 機能 | 説明 |
|---|---|
| デバッグモード | デバッグモードの有効・無効を切り替えます。チェックONするとエラーの詳細が記録されます。 |
| ログの表示 | 記録されたエラーログを表示します。 |
| ログのクリア | 記録されたエラーログをすべて消去します。 |
| システム情報 | サーバーの動作環境に関する情報を表示します。
|
Google Maps を使用するには、Google Maps API キーが必要です。以下の手順で取得してください。
https://console.cloud.google.com/https://example.com/pictmap/*)を追加します。ローカルPC上で写真マップの動作確認を行いたい場合は、XAMPP を使用するのが最も簡単です。
XAMPP は、Apache(Webサーバー)、PHP、MySQL などをまとめてインストールできる無料のソフトウェアパッケージです。写真マップはデータベースを使用しないため、Apache と PHP のみで動作します。
https://www.apachefriends.org/C:\xampp で構いません。
pictmap フォルダを以下の場所にコピーします。C:\xampp\htdocs\pictmap\
http://localhost/pictmap/
初期セットアップウィザードが表示されれば、正常に動作しています。
pictmap フォルダをそのままレンタルサーバーにアップロードして本番運用できます。ただし、ローカルで設定したデータは移行されないため、初期セットアップウィザードからやり直しになります。
http://localhost)で動作するため、現在地取得機能(GPS)は使用できません。GPS機能のテストは、HTTPSが有効なサーバーで行ってください。
旧バージョンの写真マップ(~2025年)から新バージョン(2026年~)へデータを移行するための移行スクリプト migrate.php が用意されています。
migrate.php は新サイト(pictmap)フォルダ内に配置されています。旧サイトのフォルダを同じ親ディレクトリに配置してください。
public_html/
├── pictmap/ ... 新バージョンのフォルダ
│ ├── migrate.php ... 移行スクリプト
│ └── ...
└── pictmap_old/ ... 旧バージョンのフォルダ
pictmap_old)と異なる場合は、migrate.php をテキストエディタで開き、ファイル先頭にあるフォルダ名の設定を修正してください。
https://example.com/pictmap/migrate.php にアクセスします。php migrate.php
migrate.php を必ず削除してください。
migrate.php は移行完了後、必ず削除してください。サーバー上に残しておくと、外部から実行されるセキュリティリスクがあります。
A. Google API キーの設定を確認してください。以下の点を順に確認します。
写真マップの設定画面にある 検証 ボタンで、キーの有効性を確認することもできます。
A. 以下の点を確認してください。
data/ ディレクトリの書き込み権限(パーミッション)が正しく設定されているか確認してください。A. ログインに5回連続で失敗すると、セキュリティのため15分間ロックされます。15分間お待ちいただいてから、再度ログインを試みてください。
パスワードを忘れた場合は、以下のいずれかの方法でリセットできます。
A. はい、使用できます。HEIC/HEIF 形式の写真をアップロードすると、ブラウザ上で自動的にJPEG形式に変換されてからサーバーに送信されます。変換には数秒かかる場合がありますが、特別な操作は必要ありません。
もし変換に問題が生じる場合は、iPhone の設定で撮影形式を「互換性優先」(JPEG)に変更することもできます。
A. data/ ディレクトリ全体をコピーしてください。このディレクトリにすべてのデータ(設定、ユーザー情報、写真データ、画像ファイル)が保存されています。
FTPソフトで data/ フォルダごとダウンロードするか、レンタルサーバーのファイルマネージャーを使用してダウンロードしてください。
A. バックアップした data/ ディレクトリを、サーバー上の既存の data/ ディレクトリと差し替えてください。FTPソフトで既存の data/ フォルダを削除し、バックアップの data/ フォルダをアップロードすれば復元完了です。
A. 以下の対策を検討してください。
A. 管理者アカウントを複数作成できます。ユーザー管理画面(8.2 ユーザー管理)で、新しいユーザーを追加する際に役割を「管理者」に設定してください。
A. バージョンアップ版は再度ご購入いただく必要があります。その分、各バージョンの価格を低く抑えています。なお、アップデート後も data/ ディレクトリ内のデータ(写真・設定・ユーザー情報)はそのまま引き継がれます。2025年以前の旧バージョンからの移行については、9.3 旧バージョンからのデータ移行を参照してください。
写真マップでは、以下のセキュリティ対策を実施しています。
ユーザーのパスワードは、bcrypt方式により暗号化(ハッシュ化)して保存されます。bcryptは現在最も安全とされるパスワードハッシュ方式の一つです。万が一データファイルが漏洩しても、元のパスワードを復元することは極めて困難です。
不正なログイン試行を防止するため、ログインの失敗回数を制限しています。
| 項目 | 設定値 |
|---|---|
| 最大失敗回数 | 5回 |
| ロック時間 | 15分 |
5回連続でログインに失敗すると、15分間そのアカウントへのログインがロックされます。これにより、パスワードを総当たりで推測する攻撃(ブルートフォース攻撃)を防止します。
data/ ディレクトリへの直接アクセスを .htaccess で制限してください。