ご使用方法 (PHP)

6月22日横浜で開催されるGeoアクティビティフェスタに参ります。

実行例

PHP サンプルのページを開いてください。

緯度・経度・スケール(縮尺の逆数)を指定すると、それにあわせてimg要素のsrc属性を設定します。

PHP スクリプト

ご注意: このスクリプトではパラメータチェック等は全く行われていません

<html>
<head>
  <title>WMS for Keitai</title>
</head>
<body>

<?php
  # 定数
  # 長軸半径
  $major = 6378137;
  # 扁平率
  $flat = 1/298.257222101;
  # 定数扱い
  $width = 256;
  $height= 256;
  $dpi_x = 96.0;
  $dpi_y = 96.0;
  # 初期設定
  $wh_p = $width / 2;
  $hh_p = $height / 2;
  # $mpi -> 定数 1in=0.0254m -> $mpi = 0.0254;
  # 離心率**2
  $e2 = 2*$flat-$flat*$flat;

  print_src($_GET['lon'] / 180 * M_PI,$_GET['lat'] / 180 * M_PI,$_GET['scale'], $_GET['thick']);

  function get_deltas($lam,$phi,$scale) {
    global $major, $flat, $e2, $dpi_x,$dpi_y, $wh_p,$hh_p, $width,$height;
    $cos_p = cos($phi);
    $sin_p = sin($phi);
    # 子午線, 卯酉線 求めるのに必要
    $W2 = 1-$e2*$sin_p*$sin_p;
    $W = sqrt($W2);
    # 子午線
    $merid = $major*(1-$e2)/($W2*$W);
    # 卯酉線
    $prime = $major/$W;
    # dx/dλ
    $dxdl = $prime*$cos_p;
    # dy/dφ
    $dydp = $merid;
    return array($dxdl,$dydp);
  }

  function print_src($lam,$phi,$scale,$thick) {
    global $dpi_x,$dpi_y, $wh_p,$hh_p, $width,$height;
    # 画面サイズのメートル換算
    $wh_m = $wh_p/$dpi_x*0.0254*$scale;
    $hh_m = $hh_p/$dpi_y*0.0254*$scale;
    # メートルと緯度経度の関係
    $deltas = get_deltas($lam,$phi,$scale);
    $dxdl = $deltas[0];
    $dydp = $deltas[1];
    # dλ
    $dlam = $wh_m/ $dxdl;
    $lam_min = $lam - $dlam;
    $lam_max = $lam + $dlam;
    # dφ
    $dphi = $hh_m / $dydp;
    $phi_min = $phi - $dphi;
    $phi_max = $phi + $dphi;
    # d(lat),d(lon)
    $lat_min = $phi_min / M_PI * 180;
    $lat_max = $phi_max / M_PI * 180;
    $lon_min = $lam_min / M_PI * 180;
    $lon_max = $lam_max / M_PI * 180;
    # STYLESパラメータの値を用意
    # コンマ区切りでスタイル名を指定します.
    # スタイル名はLAYERSで指定されたレイヤ名に対応しています.
    # $thick=='T'ならmedium(Cntr100のみthick)を使用
    # そうでないならthin(Cntr100のみmedium)を使用
    if( $thick == 'T' ) {
      $styles = "medium,medium,medium,medium,thick,medium,medium,medium,medium,";
    }
    else {
      $styles = "thin,thin,thin,thin,medium,thin,thin,thin,thin,";
    }
    # 1.3.0 の URL 作成
    $url = "http://www.finds.jp/ws/kiban25000wms.cgi?SERVICE=WMS&VERSION=1.3.0&amp;REQUEST=GetMap&amp;" .
	"CRS=EPSG:4326&amp;BBOX=$lat_min,$lon_min,$lat_max,$lon_max&amp;" .
	"WIDTH=$width&amp;HEIGHT=$height&amp;FORMAT=image/png&amp;" .
	"LAYERS=AdmArea,PrefSmpl,JpSmpl,Cntr10,Cntr100,BldA,WL,RdEdg,RailCL,MAPNAME&amp;" .
	"STYLES=$styles";
    # 画像取り込み
    echo "<div><img src=\"$url\" width=\"$width\" height=\"$height\" /></div>";
  }
?>
<form>
  <p>緯度 <input type="text" size="8" value="<?php echo $_GET['lat']; ?>" name="lat"></p>
  <p>経度 <input type="text" size="8" value="<?php echo $_GET['lon']; ?>" name="lon"></p>
  <p>スケール <input type="text" size="6" value="<?php echo $_GET['scale']; ?>" name="scale"></p>
  <p>太線 <input type="checkbox" "<?php echo $thick == 'T' ? "checked=\"checked\"" : ""; ?>" value="T" name="thick" /></p>
  <p><input type="submit"></p>
</form>

<p>このアプリケーションは
 承認番号 平20業使、第449号「基盤地図情報25000 WMS配信サービス」にアクセスします
 (<a href="http://www.finds.jp/wsdocs/kibanwms/index.html">配信元</a>)</p>

</body>
</html>

この地図の作成に当たっては、国土地理院長の承認を得て、同院発行の基盤地図情報を使用したものである。(承認番号 平20業使、第449号) (メタデータ)

この地図の使用・複製をするには、私的使用等を除いては国土地理院長の承認を要します(ご使用条件)。



© 2011 National Agriculture and Food Research Organization | 農研機構トップページ

[先頭へ]