古い記事
ランダムジャンプ
新しい記事
Yahoo!デベロッパーネットワークの地図API(スタティックマップ)を利用して、指定した緯度経度でメッシュ表示する簡単なCGI(単なるラッパー)を作りました。

指定した緯度経度の小数点以下の指定桁以下を切り捨て、精度を落とした「位置」をボックス(ピン4つ)で表示します。精度を落とすのは近隣の位置情報を簡単にグルーピングするためで、このAPIラッパーはグルーピング後の状態を分かりやすくブラウズするために使います。

実行例

コード (latlonmesh.cgi):
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI;

my $appid = "YOUR APPID";
my $q = new CGI;
my $z = $q->param('z') || 14; # 拡大縮小(Zoom)
my $latlon = $q->param('latlon') || "35.65111,139.70111";
my $d = 10**(($q->param('d') || 3) - 1); # 小数点d桁以下は切り捨て
my $w = $q->param('width') || 400;
my $h = $q->param('height') || 400;

my ($py1, $px1) = map {int($_*$d)/$d} split(",", $latlon);
my ($py2, $px2) = ($py1 + 1/$d, $px1);
my ($py3, $px3) = ($py2, $px1 + 1/$d);
my ($py4, $px4) = ($py1, $px3);

my $murl = "http://map.olp.yahooapis.jp/OpenLocalPlatform/V1/static"
."?appid=$appid"
."&pin1=$py1,$px1"
."&pin2=$py2,$px2"
."&pin3=$py3,$px3"
."&pin4=$py4,$px4"
."&z=$z&width=$w&height=$h";

print qq(Location: $murl\n\n);
(ライセンス的なもの:http://lifehacks.ta2o.net/byebye-copyright.html

なお、appid の取得は下記からどうぞ:
http://e.developer.yahoo.co.jp/webservices/register_application

動作テスト用フォーム:


ref.
- Yahoo!デベロッパーネットワーク - 地図 - スタティックマップ
http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/static.html