AU携帯でGPSデータを取ってMapServerで表示する
http://www.siisise.net/gps.html 参照。
form要素を使っていますが、GETアクションを使っているので a要素でもOK。
<a href="device:gpsone?url=(url)&ver=1&datum=0&unit=1&acry=0&number=0">GO</a>
こんなかんじ。
中心座標を受けて、緯度経度の範囲を出してimgextを付けてmapservにまわすリダイレクタを用意します。
#!/usr/local/bin/perl $url_body = '/mapserv'; $nowait = 0; # QUERY_STRING をとる # うち lat =%2B34.49814 lon=%2B133.38658 %2Bは"+"に対応 @ary = split(/&/,$ENV{"QUERY_STRING"}); foreach $name_and_val ( @ary ) { ($name,$val) = split( /=/, $name_and_val ); $name =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1 )/eg; $val =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1 )/eg; if( $name eq "lat" ) { $lat = $val + 0; } if( $name eq "lon" ) { $lon = $val + 0; } } # パラメータ $param = "map=(マップへのパス)&layers=all&scale=0.1&zoomsize=2&mapxy=$lon+$lat"; # urlを生成 $url = $url_body.'?'.$param; # nowait が true なら、Locationヘッダをつける # (Location:フィールドは効くみたい) $http_header = "Content-Type: text/html; charset=Shift_JIS\n"; if( $nowait ) { $http_header = $http_header . "Location: $url\n"; } print << "_EOL_"; $http_header <html> <head> <title>位置決定</title> </head> <body> <h1>位置決定</h1> <p>次の通り転送します。</p> <dl> <dt>緯度(北緯)</dt> <dd>$lat</dd> <dt>経度(東経)</dt> <dd>$lon</dt> </dl> <p><a href="$url">移動</a></p> </body> </html> _EOL_
nowaitを0以外にすると、HTTPヘッダの Location フィールドを生成するので、対応していれば(してると思うけど)、redirector.cgi から、目的のページに飛ぶ際に操作がいらなくなります。