インターネット上には様々な地図サービスがあり、無料で利用できるものも多い。「ぱふぅ家のホームページ」の絵日記コーナーにも、行き先の地図を表示する機能を持たせてある。この機能だが、最初は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:
| 2006年10月22日更新 | ||
| <<前へ | <目次> | 次へ>> |
| 戻る | 【関連ページ】 | |