PHPで地図で指定した場所の天気予報を求める

(1/1)
PHPで天気予報を求める」で紹介した気象庁の「気象庁防災情報XML」を利用し、地図サービスをクラウド連携することで、住所やランドマークから週間天気予報を表示するPHPプログラムを作ってみる。

(2025年8月13日).pahooEnv 導入
(2025年6月14日)GoogleMaps JavaScript APIの変更に対応した.
(2025年3月1日)国外の天気予報が出来ないことから,GEOSERVICEにYahoo!JAPANを指定したとき,ラジオボタン[世界]を非表示にした.
(2025年2月23日)指定した場所が予報地点外の時にエラー表示するようにした.
(2025年2月2日)予報地点情報ファイルを1週間毎に再作成するようにした.
(2024年11月9日)予報地点情報ファイルを更新

サンプル・プログラムの実行例

PHPで地図で指定した場所の天気予報を求める
Googleマップ表示

目次

サンプル・プログラムのダウンロード

圧縮ファイルの内容
myWeather.phpサンプル・プログラム本体
.pahooEnvクラウドサービスを利用するためのアカウント情報などを記入する .env ファイル。
使い方は「各種クラウド連携サービス(WebAPI)の登録方法」を参照。include_path が通ったディレクトリに配置すること。
pahooInputData.phpデータ入力に関わる関数群。
使い方は「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。
pahooGeoCode.php住所・緯度・経度に関わるクラス pahooGeoCode。
使い方は「PHPで住所・ランドマークから最寄り駅を求める」「PHPで住所・ランドマークから緯度・経度を求める」などを参照。include_path が通ったディレクトリに配置すること。
pahooWeather.php気象情報に関わるクラス pahooWeather。
気象情報に関わるクラスの使い方は「PHPで天気予報を求める」を参照。include_path が通ったディレクトリに配置すること。
pahooCache.phpキャッシュ処理に関わるクラス pahooCache。
キャッシュ処理に関わるクラスの使い方は「PHPで天気予報を求める」を参照。include_path が通ったディレクトリに配置すること。
jmaweatherspots.xml予報地点情報ファイル。「PHPで天気予報を求める」参照。
jmaWeatherInit.php予報地点情報ファイル作成プログラム。「PHPで天気予報を求める」参照。
myWeather.php 更新履歴
バージョン 更新日 内容
3.6.1 2025/03/01 国外の天気予報が出来ないことから,GEOSERVICEにYahoo!JAPANを指定したとき,ラジオボタン[世界]を非表示にした
3.6.0 2025/02/23 指定した場所が予報地点外の時にエラー表示
3.5.1 2025/02/23 予報表タイトルの誤記訂正
3.5.0 2023/08/12 検索キーの最小・最大長の指定
3.4.0 2023/08/12 国土地理院ジオコーディングAPIを追加
jmaWeatherInit.php 更新履歴
バージョン 更新日 内容
3.1.0 2023/03/18 地域気象観測所一覧のフォーマット変更に対応
3.0.0 2023/02/11 アメダスのページから自動ダウンロード対応
2.2 2022/03/12 気象庁防災情報XMLのhttps化に対応, キャッシュ・システム導入:pahooCacheクラス
2.11 2021/03/23 bug-fix,地域観測所一覧(アメダス)を最新に
2.1 2021/03/03 天気予報(2~3日予報)に対応
pahooGeoCode.php 更新履歴
バージョン 更新日 内容
6.8.0 2025/08/10 アクセスキーなどを ".env" に分離
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の変更に対応
pahooWeather.php 更新履歴
バージョン 更新日 内容
5.7.0 2025/08/09 readEnvWBGTinfoSpots(), readEnvWBGTforecast(), getWBGTcolor() 追加
5.6.2 2025/04/10 readJmaSpots() -- bug-fix
5.6.1 2025/04/08 getMyscriptPathURL() -- bug-fix
5.6.0 2025/02/23 getJmaNearSpot() -- 引数 $distanceMax 追加
5.5.0 2025/02/01 予報地点情報ファイルを1週間毎に再作成する
pahooCache.php 更新履歴
バージョン 更新日 内容
1.1.3 2025/08/10 var→public
1.1.2 2023/07/22 bug-fix
1.1.1 2023/02/11 コメント追記
1.1 2021/04/08 simplexml_load()メソッド追加
1.0 2021/04/02 初版
pahooInputData.php 更新履歴
バージョン 更新日 内容
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で地図で指定した場所の天気予報を求める
プログラムの流れは「PHPで最寄り駅を求める」の時と同じで、緯度・経度から施設情報を求める部分を、「PHPで天気予報を求める」に差し替えただけである。

準備:PHP の https対応

クラウド連携や相手先サイトのデータを読み込むのに https通信を使うため、PHPに OpenSSLモジュールが組み込まれている必要がある。関数  phpinfo  を使って、下図のように表示されればOKだ。
OpenSSL - PHP
そうでない場合は、次の手順に従ってOpenSSLを有効化し、PHPを再起動させる必要がある。

Windowsでは、"php.ini" の下記の行を有効化する。
extension=php_openssl.dll
Linuxでは --with-openssl=/usr オプションを付けて再ビルドする。→OpenSSLインストール手順

これで準備は完了だ。

準備:pahooInputData 関数群

PHPのバージョンや入力データのバリデーションなど、汎用的に使う関数群を収めたファイル "pahooInputData.php" が同梱されているが、include_path が通ったディレクトリに配置してほしい。他のプログラムでも "pahooInputData.php" を利用するが、常に最新のファイルを1つ配置すればよい。

また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。

準備: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マップやLeafletなどによる地図描画や住所検索を行うためのクラスが pahooGeoCode である。同梱のクラス・ファイル "pahooGeoCode.php" は include_path が通ったディレクトリに配置してほしい。他のプログラムでも pahooGeoCodeクラス を利用するが、常に最新のクラス・ファイルを1つ配置すればよい。
PHPのクラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。

地図や住所検索として 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でクラスを使ってテキストの読みやすさを調べる」を参照されたい。

準備:pahooCache クラス

pahooCache.php

  13: class pahooCache {
  14:     const LIFE_CACHE = (2 * 60);        // キャッシュ保持時間(デフォルト;分)
  15:     const DEF_DIRCACHE = './pcache/';   // キャッシュ・ディレクトリ(デフォルト)
  16: 
  17:     public $lifeCache;      // キャッシュ保持時間(分)(0:キャッシュしない)
  18:     public $dirCache;       // キャッシュ用ディレクトリ
  19:     public $error;          // エラーフラグ
  20:     public $errmsg;         // エラーメッセージ
  21:     public $debug;          // デバッグ用ファイル名
  22: 
  23: /**
  24:  * コンストラクタ
  25:  * 参考サイト https://www.pahoo.org/e-soul/webtech/php06/php06-72-01.shtm
  26:  * @param   int    $life キャッシュ保持時間(分)(省略可能)
  27:  * @param   string $dir キャッシュ・ディレクトリ(省略可能)
  28:  * @return  なし
  29: */
  30: function __construct($life=self::LIFE_CACHE, $dir=self::DEF_DIRCACHE) {
  31:     if ($life < 0) {
  32:         $life = 0;
  33:     }
  34:     if (preg_match('/\/$/ui', $dir) == 0) {
  35:         $dir = $dir . '/';
  36:     }
  37:     $this->error      = FALSE;
  38:     $this->errmsg     = '';
  39:     $this->debug      = '';
  40:     $this->lifeCache = $life;
  41:     $this->dirCache  = $dir;
  42: 
  43:     // PHP5以上であることを調べる.
  44:     if (! $this->isphp5over()) {
  45:         $this->error   = TRUE;
  46:         $this->errmsg  = '動作にはPHP5以上が必要です';
  47:         return;
  48:     }
  49: 
  50:     // キャッシュ・ディレクトリが無ければ作成する.
  51:     if (! is_dir($this->dirCache)) {
  52:         $res = mkdir($this->dirCache, 0744);
  53:         if ($res == FALSE) {
  54:             $this->error   = TRUE;
  55:             $this->errmsg  = 'キャッシュ・ディレクトリ "' . $this->$dirCache . '" の作成に失敗しました';
  56:             return;
  57:         }
  58:     }
  59: }

クラウド連携や相手先サイトの公開データを利用する際、こちらのアプリを起動する都度、APIを呼び出したりデータをダウンロードするのでは、相手サーバに負荷をかけてしまう。
そこで、頻繁に変更がないデータについては、一度取り込んだら、こちら側のサーバのローカルストレージにキャッシュしておく仕組みを用意した。それが pahooCacheクラス である。同梱のクラス・ファイル "pahooCache.php" は include_path が通ったディレクトリに配置してほしい。他のプログラムでも pahooCacheクラス を利用するが、常に最新のクラス・ファイルを1つ配置すればよい。

pahooCacheクラス の注意ポイントは、キャッシュ時間(単位:分)とキャッシュを保存するディレクトリをコンストラクタで指定している点だ。これらはプログラムによって変わるものである。インスタンス化するときの値は、pahooCacheクラス を利用するメイン・プログラムの方で解説する。

PHPのクラスについては「PHPでクラスを使ってテキストの読みやすさを調べる」を参照されたい。

準備:地図サービスの選択

myWeather.php

  71: // 地図描画サービスの選択
  72: //    0:Google
  73: //    2:地理院地図・OSM
  74: define('MAPSERVICE', 2);
  75: 
  76: // 住所検索サービスの選択
  77: //    0:Google
  78: //    1:Yahoo!JAPAN
  79: //   11:HeartRails Geo API
  80: //   12:OSM Nominatim Search API
  81: //   13:国土地理院ジオコーディングAPI
  82: define('GEOSERVICE', 1);
  83: 
  84: // 逆ジオコーディングサービスの選択
  85: //    0:Google
  86: //    1:Yahoo!JAPAN
  87: //   11:HeartRails Geo API
  88: //   21:簡易ジオコーディングサービス
  89: define('REVGEOSERVICE', 1);

表示する地図は、Googleマップ地理院地図・オープンストリートマップ(OSM)から選べる。あらかじめ、定数 MAPSERVIC に値を設定すること。
住所検索サービスは、GoogleYahoo!JAPANHeartRails Geo APIOSM Nominatim Search API国土地理院ジオコーディングAPI から選べる。あらかじめ、定数 GEOSERVICE に値を設定すること。
逆ジオコーディングサービスは、GoogleYahoo!JAPANHeartRails Geo API簡易ジオコーディングサービスから選べる。あらかじめ、定数 REVGEOSERVICE に値を設定すること。
PHPで地図で指定した場所の天気予報を求める
地理院地図表示
PHPで地図で指定した場所の天気予報を求める
オープンストリートマップ表示

準備:その他の定数

myWeather.php

  91: // マップの表示サイズ(単位:ピクセル)
  92: define('MAP_WIDTH',  700);
  93: define('MAP_HEIGHT', 400);
  94: // マップID
  95: define('MAPID', 'map_id');
  96: // 初期値
  97: define('DEF_LATITUDE',  35.4658);       // 緯度
  98: define('DEF_LONGITUDE', 139.6223);      // 経度
  99: define('DEF_TYPE',      'roadmap');     // マップタイプ
 100: define('DEF_ZOOM',      13);            // ズーム
 101: define('DEF_CATEGORY', 'address');      // カテゴリ
 102: 
 103: // 検索キーの最小文字長
 104: define('QUERY_MIN_LEN', 3);
 105: 
 106: // 検索キーの最大文字長
 107: define('QUERY_MAX_LEN', 99);
 108: 
 109: // 予報地点までの最大距離(km)
 110: define('DISTANCE_MAX', 400);

その他の定数は任意の値に変更することができる。
予報地点までの最大距離 DISTANCE_MAX は、この距離の範囲内に予報地点が見つからなければエラーを返す。

準備:地図サービスの選択

myWeather.php

  71: // 地図描画サービスの選択
  72: //    0:Google
  73: //    2:地理院地図・OSM
  74: define('MAPSERVICE', 2);
  75: 
  76: // 住所検索サービスの選択
  77: //    0:Google
  78: //    1:Yahoo!JAPAN
  79: //   11:HeartRails Geo API
  80: //   12:OSM Nominatim Search API
  81: //   13:国土地理院ジオコーディングAPI
  82: define('GEOSERVICE', 1);
  83: 
  84: // 逆ジオコーディングサービスの選択
  85: //    0:Google
  86: //    1:Yahoo!JAPAN
  87: //   11:HeartRails Geo API
  88: //   21:簡易ジオコーディングサービス
  89: define('REVGEOSERVICE', 1);

表示する地図は、Googleマップ地理院地図・オープンストリートマップ(OSM)から選べる。あらかじめ、定数 MAPSERVIC に値を設定すること。
住所検索サービスは、GoogleYahoo!JAPANHeartRails Geo APIOSM Nominatim Search API国土地理院ジオコーディングAPI から選べる。あらかじめ、定数 GEOSERVICE に値を設定すること。
逆ジオコーディングサービスは、GoogleYahoo!JAPANHeartRails Geo API簡易ジオコーディングサービスから選べる。あらかじめ、定数 REVGEOSERVICE に値を設定すること。

解説:最も近い予報地点

pahooWeather.php

 233: /**
 234:  * 指定した緯度・経度に最も近い予報地点コードを求める.
 235:  * 参考サイト https://www.pahoo.org/e-soul/webtech/php06/php06-52-01.shtm
 236:  * @param   object $pgc pahooGeoCodeオブジェクト
 237:  * @param   double $longitude 経度(世界測地系)
 238:  * @param   double $latitude  緯度(世界測地系)
 239:  * @param   int    $forecast  0:天気予報,1:週間天気予報(省略時:1)
 240:  * @param   float  $distanceMax 予報地点からの最大距離(km)
 241:  *                      これより近い予報地点が見つからなければNULLを返す
 242:  * @return  string 予報地点コード/NULL:合致する予報地点がない
 243: */
 244: function getJmaNearSpot($pgc, $longitude, $latitude, $forecast=1, $distanceMax=99999) {
 245:     // 電文コード
 246:     $code = ($forecast == 0? 'VPFD51' : 'VPFW50';
 247: 
 248:     $res = NULL;
 249:     $cnt = 0;
 250:     $d0  = 999999999;
 251:     // 電文コードが一致する予報地点を選んで2地点間の距離を計算
 252:     while (1) {
 253:         if ($this->spots[$cnt]['code'] == $code
 254:             && isset($this->spots[$cnt]['stationCode'])
 255:             && isset($this->spots[$cnt]['longitude'])
 256:             && isset($this->spots[$cnt]['latitude'])) {
 257:             $d1 = $pgc->distance($this->spots[$cnt]['longitude'], $this->spots[$cnt]['latitude'], $longitude, $latitude);
 258:             // 距離がより小さければ採用
 259:             if ($d1 < $d0) {
 260:                 $res = (string)$this->spots[$cnt]['stationCode'];
 261:                 $d0 = $d1;
 262:             }
 263:             $cnt++;
 264:         } else {
 265:             break;
 266:         }
 267:     }
 268:     return ($d0 > $distanceMax * 1000? NULL : $res;
 269: }

Googleマップから取得した緯度・経度を取得できるが、一方、クラス "pahooWeather" では定められた都市の天気予報しか取得できない。そこで、マップ・サービスから取得した緯度・経度に最も近い予報地点の天気予報を表示することにした。
最も近い予報地点を取得するのがメソッド getJmaNearSpot である。
あらかじめ用意した予報地点情報 $spots とマップ・サービスから取得した緯度・経度の距離を計算し、それが最短になる予報地点を採用する。
最後に、計算した距離が引数 $distanceMax よりも大きい場合にはエラー(NULL)を返すようにした。これは、緯度・軽度として国外の地点を指定した場合に備えての措置である。

なお、予報地点情報 $spots は、あらかじめXML形式ファイル "FILE_JMASPOTS" として用意しておく必要がある。
"FILE_JMASPOTS" は圧縮ファイルに同梱しているが、もし新規作成する場合は、「予報地点情報ファイル - PHPで天気予報を求める」をご覧いただきたい。

解説:表示とURLパラメータ

myWeather.php

 400: // 各種パラメータを代入する.
 401: $items  = array();
 402: $html = $errmsg = $url = $address = '';
 403: $id        = (int)getParam('id',          FALSE, 0);                // 表示モード
 404: $query    = getValidString('query', $errmsg, '', QUERY_MIN_LEN, QUERY_MAX_LEN);
 405: if ($errmsg !'') {
 406:     $errmsg = '検索キーの長さが' . $errmsg;
 407: }
 408: $latitude  = (float)getParam('latitude',  FALSE, DEF_LATITUDE);     // 緯度
 409: $longitude = (float)getParam('longitude', FALSE, DEF_LONGITUDE);    // 経度
 410: $zoom      = (int)getParam('zoom',        FALSE, DEF_ZOOM);         // ズーム
 411: $type      = (string)getParam('type',     FALSE, DEF_TYPE);         // マップタイプ
 412: $category  = (string)getParam('category',    FALSE, DEF_CATEGORY);  // カテゴリ
 413: $outenc    = (string)getParam('charset',  FALSE, INTERNAL_ENCODING);

URLパラメータを使って
myWeather.php?id=1&query=%E6%9C%AD%E5%B9%8C%E5%B8%82
のようにすることで、query をキーワードにして検索した地点の天気予報のみを表示させることができる。つまり、このスクリプトをホームページやブログの一部として組み込むことで、週間天気予報を表示するパーツになる。
query はUTF-8をURLエンコードしたもの。Yahoo!JAPAN住所検索を使う場合は、category をあわせて指定すること。
また、出力はHTML文のみとなり、スタイルシートは本体ページの方で用意していただきたい。必要なclassは次の通り。

myWeather.php

 149: <style>
 150: /* エラー表示 */
 151: p.werror {
 152:     color: red;
 153: }
 154: /* 天気予報表 */
 155: table.weather {
 156:     width: {$width}px;
 157:     border:solid 1px #000000;
 158:     border-collapse:collapse;
 159:     margin-top:10px;
 160: 
 161: }
 162: /* 天気予報表:月日表示部 */
 163: table.weather td.dt {
 164:     width: {$width}px;
 165:     border:solid 1px #000000;
 166:     border-collapse: collapse;
 167:     padding:4px;
 168:     white-space:nowrap;
 169:     text-align:center;
 170: }
 171: /* 天気予報表:予報表示部 */
 172: table.weather td.info {
 173:     width: {$width}px;
 174:     border:solid 1px #000000;
 175:     border-collapse: collapse;
 176:     padding:4px;
 177:     white-space:nowrap;
 178:     text-align:center;
 179: }
 180: /* 天気予報表:予報アイコン */
 181: img.wicon {
 182:     width: 60px;
 183: }
 184: /* 天気予報表:小さい文字 */
 185: span.wsmall {
 186:     font-size: small;
 187: }
 188: </style>

また、親となるホームページやブログの文字コードセットにあわせ、charset 変数で出力文字コードを変更できるようにした。たとえば
myWeather.php?id=1&query=%E6%9C%AD%E5%B9%8C%E5%B8%82&charset=SJIS
とすると、シフトJISで出力することができる。
緯度・経度を直接、URLパラメータに渡すこともできる。
myWeather.php?id=1&latitude=26.591&longitude=127.977
のようにすることで、北緯26.591度、東経127.977度の天気予報のみを表示させることができる。

質疑応答

【質問】 ぱーまーさま
お世話になっております。
PHPで地図で指定した場所の天気予報を求めるを活用させていただいております。

こちら、世界の天気予報が以前は国単位で取得可能でした。
現在、すべての場所で同じ天気が表示されます。
地図は問題なく表示されます。

例えば「韓国」「台湾」「イタリア」「カンボジア」「ベトナム」「シンガポール」で検索すると同一の天気になります。
予報地点情報ファイルを更新しましたが解消されません。

ご確認よろしくお願いいたします。
【回答】
国外の天気予報を表示していたのは、プログラムの誤りでした。実際には当該国の天気予報は取得できておらず、国内の予報地点の情報を表示しているだけでした。
そこで、予報可能な地点から遠い場所を指定したときには、正しくエラーを表示するようにしました。


【質問】 ぱーまーさま
お世話になっております。
ご回答ありがとうございました。
こちらのサンプルプログラムで
カテゴリ[住所][ランドマーク][世界]というラジオボタンがあったので世界の天気が取得できると思ってしました。[世界]のラジオボタンは削除されるか、「地図のみの表示」ですという記載などされたほうが良いかもしれません。

下記のOpenWeatherMap APIというものを利用すれば世界の都市の週間天気予報を表示できるようです。
https://qiita.com/sdkk-rails/items/3589afefda4169976965

もし、今後お手すきでご意欲があればの話ですが、「地図で指定した場所の天気予報」の世界版を作成していただければ大変うれしく思います。

勝手な意見で申し訳ありません。
こちらの国内版は今後も利用させていただきます。
どうぞよろしくお願いいたします。
【回答】
アドバイスをありがとうございます。
本編を通読していただくと分かる通り、ラジオボタン[世界]は住所検索に Yahoo!JAPAN を使ったときに限って表示します。とはいえ、本プログラムは国外の天気予報を表示できないので、このラジオボタンの意味がありませんので表示しないようにしました。

教えていただいた OpenWeatherMap API は、国内の天気予報について、本プログラムが参照している気象庁防災情報XML とは異なる予報を表示することから、すぐに本プログラムへ導入することは控えたいと思います。別プログラムにするかどうか、今後検討いたします。

活用例

地図・地名で指定した場所の週間天気予報」(みんなの知識 ちょっと便利帳)では、このサンプル・プログラムを活用し、検索しやすく、また週間天気予報を見やすく表示している。ありがとうございます。

参考サイト

(この項おわり)
header