サンプル・プログラム:実行例
住所(必須)、目的地、目的地URLを入力し「作成」ボタンをクリックすることで、画面下段のようにGoogleマップ(静止画)と、目的地へのリンクを表示する。そして、これを表示するためのHTMLをtextarea内に表示する。
また、画面の表示幅、表示高、地図の拡大率を指定できるようになっている。
目次
サンプル・プログラム
| getGoogleMapStd.php | サンプル・プログラム本体。 |
| pahooGeoCode.php | 住所・緯度・経度に関わるクラス pahooGeoCode。 使い方は「PHPで住所・ランドマークから最寄り駅を求める」「PHPで住所・ランドマークから緯度・経度を求める」などを参照。include_path が通ったディレクトリに配置すること。 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 3.4.0 | 2025/08/30 | .pahooEnv導入, pahooInputDat導入 |
| 3.3 | 2021/10/10 | PHP8対応,リファラ・チェック改良など |
| 3.2 | 2018/12/30 | JavaScriptのコピー機能を pahooClipboard に変更 |
| 3.1 | 2018/02/20 | GoogleMaps Geocoding API 最新版に対応 |
| 3.0 | 2016/01/16 | pahooGeoCode使用,Google Static Maps V2対応 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 6.8.0 | 2025/08/10 | アクセスキーなどを ".pahooEnd" に分離 |
| 6.7.1 | 2025/07/26 | jsLine_Gmap() - bug-fix |
| 6.7.0 | 2025/07/20 | drawJSmap,drawGMap -- 引数 $markerLevel 追加 |
| 6.6.0 | 2025/07/19 | drawJSmap,drawGMap,drawLeaflet -- マップ中心マーカー表示引数を追加 |
| 6.5.0 | 2025/06/14 | GoogleMaps JavaScript APIの変更に対応 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 2.0.1 | 2025/08/11 | getParam() bug-fix |
| 2.0.0 | 2025/08/11 | pahooLoadEnv() 追加 |
| 1.9.0 | 2025/07/26 | getParam() 引数に$trim追加 |
| 1.8.1 | 2025/03/15 | validRegexPattern() debug |
| 1.8.0 | 2024/11/12 | validRegexPattern() 追加 |
準備:PHP の https対応
Windowsでは、"php.ini" の下記の行を有効化する。
extension=php_openssl.dllLinuxでは --with-openssl=/usr オプションを付けて再ビルドする。→OpenSSLインストール手順
これで準備は完了だ。
準備:pahooGeoCode クラス
pahooGeoCode.php
40: class pahooGeoCode {
41: public $items; // 検索結果格納用
42: public $error; // エラー・フラグ
43: public $errmsg; // エラー・メッセージ
44: public $hits; // 検索ヒット件数
45: public $webapi; // 直前に呼び出したWebAPI URL
46:
47: // -- 以下のデータは .env ファイルに記述可能
48: // Google Cloud Platform APIキー
49: // https://cloud.google.com/maps-platform/
50: // ※Google Maps APIを利用しないのなら登録不要
51: public $GOOGLE_API_KEY_1 = ''; // HTTPリファラ用
52: public $GOOGLE_API_KEY_2 = ''; // IP制限用
53: public $GOOGLE_MAP_ID = ''; // GoogleMaps ID
54:
55: // Yahoo! JAPAN Webサービス アプリケーションID
56: // https://e.developer.yahoo.co.jp/register
57: // ※Yahoo! JAPAN Webサービスを利用しないのなら登録不要
58: public $YAHOO_APPLICATION_ID = '';
59:
60: // OSM Nominatim Search API利用時に知らせるメールアドレス
61: // https://wiki.openstreetmap.org/wiki/JA:Nominatim#.E6.A4.9C.E7.B4.A2
62: // ※OSM Nominatim Search APIを利用しないのなら登録不要
63: public $NOMINATIM_EMAIL = '';
64:
65: // IP2Location.io APIキー
66: // https://www.ip2location.io/
67: // ※IP2Location.ioを利用しないのなら登録不要
68: public $IP2LOCATION_API_KEY = '';
地図や住所検索として Google を利用するのであれば Google Cloud Platform APIキー とマップID が必要で、その入手方法は「Google Cloud Platform - WebAPIの登録方法」を、Yahoo!JAPAN を利用するのであれば Yahoo! JAPAN Webサービス アプリケーションIDが必要で、その入手方法は「Yahoo!JAPAN デベロッパーネットワーク - WebAPIの登録方法」を、IP2Location.ioを利用するのであれば「PHPでIPアドレスやホスト名から住所を求める」を、それぞれ参照されたい。
PHPのクラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。
準備:pahooInputData 関数群
また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。
サンプル・プログラムの流れ
解説:GoogleMaps staticmap
pahooGeoCode.php
解説:パラメータの取得
pahooGeoCode.php
ここでは、パラメータを受け取る際のバリデーション処理について説明する。
本プログラムは、HTML FORMでパラメータを入力し、自分自身(スクリプト)を呼び出すものであるが、悪意のある第三者が悪意のあるパラメータを使ってスクリプトを呼び出すかもしれない。そこで、パラメータがプログラムに悪影響を及ぼさないかどうかチェックする必要がある。
データのバリデーション機能は、PEARのようなフレームワークに用意されているのだが、ここでは、整数をチェックする getParam_validateInt と文字列をチェックする getParam_validateStr という2つのユーザー関数を用意することにした。
getGoogleMapStd.php
- パラメータが存在するかどうか
- 整数かどうか
- 指定した最大値・最小値の範囲にあるかどうか
「整数かどうか」のチェックでは、組み込み関数 is_int を使おうと考えたが、HTML FORM からの入力を判定できない(文字列と認識してしまう)ため、 preg_match により正規表現で判定することにした。
getGoogleMapStd.php
- パラメータが存在するかどうか
- 指定した最長値・最短値の範囲にあるかどうか
チェック工程のいずれかで異常が発生した場合には '' を返す。

(2025年8月30日).pahooEnv導入, pahooInputDat導入