|
インターネット上では、無料で利用できる地図サービスが数多くある。「ぱふぅ家のホームページ」の絵日記コーナーでも、こうしたサービスを利用させてもらい、目的地付近の地図を表示している。 現在は Google マップを利用しているが、当初はMapFanWebを利用して表示していた。 今回は、経度・緯度と縮尺を与えると、MapFanWebを利用し、その地点の地図を表示するプログラムを紹介する。 |
サンプル・プログラム |
|
サンプル・プログラムの解説 |
|
|
このプログラムは、他のコンテンツから利用することを考慮して、URL に変数MAP(経度・緯度)と変数ZM(縮尺)を渡すことで地図が表示できるようになっている。 たとえば URL に "viewmap1.php?MAP=E139.33.50.1N35.41.58.1&ZM=7"と指定すれば、MapFanWebで、 東経139 度 33 分 50.1秒、北緯35 度 41 分 58.1秒 を中心とした地図を縮尺 5 万分の 1 で表示することができる プログラムは大きく 2 つの部分に分かれる。 URL に変数が指定されていない場合は、以下の部分が実行され、フォームを使って緯度・経度・縮尺を入力する。 |
|
|
0014: // 入力処理 ================================================================= |
|
変数が渡されている場合は、以下の部分が実行され、MapFanWeb の該当地点を表示する。 MapFanWebの場合、経度・緯度は、たとえば「東経139 度 33 分 50.1秒、北緯35 度 41 分 58.1秒」なら、「E139.33.50.1N35.41.58.1」のように記述する。 |
|
0071: // 地図表示処理 ============================================================= |
|
このように何か値を入力すると何かアクションを起こすプログラムの場合、入力した値が間違っていないかどうか事前にチェックする必要がある。とくにインターネットの場合、クロスサイトスクリプティング* や SQL インジェクション といった悪意のある入力もあり得るので、しっかりと入力チェックを行っておきたい。
ここでは、変数 MAP に対しては、東経・北緯しか入力されないことを前提に、関数 preg_match を使ってパターンマッチによるチェックを行っている。MapFanWebの場合、経度・緯度とも、度分まで入力しないと正常に表示されないようである。 また、変数 ZM は、以下のような縮尺と対応している。そこで、入力値を整数化し、2 以上12 以下であることをチェックしている。 このプログラムではリストボックスから選択するので間違いはないはずだが、URL からダイレクトに ZM を入力するケースを想定し、このような入力チェックを行うこととした。
これらの入力チェックをクリアした場合のみ、MapFanWeb に必要なパラメータを渡し、関数 header を利用してジャンプする。 |
|
|
|
|
|
2005年07月18日 作成
2009年06月26日 更新
Copyright by studio pahoo, (C)2009
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |