header

PHPでMapFanWebを利用する

(1/2)

インターネット上には様々な地図サービスがあり、無料で利用できるものも多い。「ぱふぅ家のホームページ」の絵日記コーナーにも、行き先の地図を表示する機能を持たせてある。この機能だが、最初はMapFanWebを利用して表示させていた。

そこで今回は、経度・緯度と縮尺を与えると、MapFanWebを利用し、その地点の地図を表示するプログラムを紹介する。

0001: <?php
0002: // ここからPHPプログラム =======================================================
0003: /**viewmap.php
0004:  * 地図ビューア
0005:  * @copyright   (c)studio pahoo
0006:  * @author      パパぱふぅ
0007:  * @version     1.0  2005/07/17
0008:  *
0009: */
0010: //初回起動時
0011: if (isset($_GET["MAP"]) == FALSE) {
0012: $myself = basename($_SERVER["PHP_SELF"]);
0013: 
0014: // ここまでPHPプログラム =======================================================
0015: ?>
0016: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
0017:  "http://www.w3.org/TR/html4/loose.dtd">
0018: <html lang="ja">
0019: <head>
0020: <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
0021: <title>地図ビューア</title>
0022: </head>
0023: <body>
0024: 
0025: <h1>■地図ビューア</h1>
0026: <form method="get" action="<?= $myself ?>">
0027: <table border="0">
0028: <tr>
0029: <td>経度・緯度を入力></td>
0030: <td><input name="MAP" type="text" size="80" /></td>
0031: </tr>
0032: <tr>
0033: <td></td>
0034: <td>例:E139.33.50.1N35.41.58.1(東経139度33分50.1秒、北緯35度41分58.1秒)</td>
0035: </tr>
0036: <tr>
0037: <td>縮尺を選択></td>
0038: <td>
0039: <select name="ZM">
0040: <option value="2">160万分の1</option>
0041: <option value="3">80万分の1</option>
0042: <option value="4">40万分の1</option>
0043: <option value="5">20万分の1</option>
0044: <option value="6">10万分の1</option>
0045: <option value="7">5万分の1</option>
0046: <option value="8">2万5千分の1</option>
0047: <option value="9" selected>1万2500分の1</option>
0048: <option value="10">6250分の1</option>
0049: <option value="11">3125分の1</option>
0050: <option value="12">1562分の1</option>
0051: </select>
0052: </td>
0053: </tr>
0054: <tr>
0055: <td></td>
0056: <td align="center"><input type="submit" name="Submit" value="地図表示" /></td>
0057: </tr>
0058: <tr>
0059: <td></td>
0060: <td align="right">Powerd by <img src="http://www.mapfan.com/images/mfweb.gif" border="0" /></td>
0061: </tr>
0062: </table>
0063: </form>
0064: </body>
0065: </html>
0066: 
0067: <?php
0068: // ここからPHPプログラム =======================================================
0069: } else {
0070: $map = $_GET["MAP"];                                            //緯度経度
0071: $zm  = (isset($_GET["ZM"])  == TRUE) ? intval($_GET["ZM"])  : 9;    //縮尺く
0072: 
0073: $f1 = preg_match("/E[0-9]+[0-9]?[0-9]?(\.)?[0-9]+[0-9]?(\.)?[0-9]?[0-9]?(\.)?[0-9]*N[0-9]+[0-9]?(\.)?[0-9]+[0-9]?(\.)?[0-9]?[0-9]?(\.)?[0-9]*/", $map); //緯度経度の異常チェック
0074: $f2 = ($zm >= 2) && ($zm <= 12);        //縮尺の異常チェック
0075: 
0076: if ($f1 == FALSE) {
0077:     echo $map . " : 経度・緯度の値が間違っています。";
0078: } else if ($f2 == FALSE) {
0079:     echo $zm . " : 縮尺は2以上12以下の整数です。";
0080: 
0081: //MapFanサイトへジャンプ
0082: } else {
0083:     $str = "http://www.mapfan.com/index.cgi?MAP=" . $map ."&ZM=" . $zm;
0084:     header("Location: " .$str);
0085: }
0086: }
0087: // ここまでPHPプログラム =======================================================
0088: ?>
0089: 

プログラムを実行する