ホーム > タグ > ドコモ
ドコモ
Google Static Map APIと携帯GPS連携
ここ数日の間に、ITmediaでもGoogle マイマップ自動保存による情報漏洩問題が取り上げている模様。まあしかし、少し前だとグーグル八分、しばらくはストリートビュー、今度はマイマップと、何かときな臭い話の絶えないGoogleですが、正直Googleにまったく依存しないのは難しいし、Web業界だったら不可能だ。
まーだからこそ寡占ってイヤだねぇという話なのだけど、検索精度の上がってきたYahooやMSNはどうなのだろう、とちょっと使ってみたところ、やはりテキスト検索ではさっぱり使い物にならん。いや、Googleのテキスト検索精度がそれだけ高いということなのだろうけど、履歴記憶一切無しにしていても、テキスト検索でGoogleは強い(まあ画像はイマイチだけど)。
その上、先日故あってインターンシップのサンプルプログラムでGoogle Map APIのプログラムを作ったのも皮肉な話だ。まあ、GPS連携とか、同様の処理(Yahoo!地図とか)には部分的に使いまわせるトコもあると思うのでメモっておこう。あ、Perlです。
今回試したのは、携帯GPSとGoogle Static Map APIの組み合わせデモプログラム。通常のGoogle MapはJavascriptでAjaxバリバリですが、携帯ブラウザでは閲覧できないので、Static Mapを使います。と言っても、値を渡すURLと、一枚の画像として出力される点が異なるだけです。URLは以下のような形式になっていますので、値を渡してやれば画像が出力されます。
<img src=”http://maps.google.com/staticmap?center=[緯度],[経度]&zoom=[ズーム]&size=[横x縦]&maptype=mobile&markers=[緯度],[経度],redp&key=[APIキー]” />
こんな感じで…staticmap?の後に引数を渡します。各項目の詳細は以下。
- center 画像の中心の経度と緯度。カンマで区切る。
- zoom 画像の倍率。数値。大きいほど寄り、小さいほど引きになる。とりあえず15くらいでテストした。
- size 横x縦。ピクセル単位、真ん中はx(小文字エックス)で区切る。今の携帯だと240×320くらいかな。
- maptype 今回は携帯なのでmobile。roadmapというのもありますが、今回使ってないからやってません。
- markers マーカーの緯度,経度,色と文字。緯度経度はcenterと同様に指定すればOKですが、色と文字は例えば赤でAと表示したければreda、青でPと表示したければbluepと指定。どんな色があるかは調べて下さい。
ちなみに[マーカー引数]%7C[マーカー2引数]%7C…とやることで複数のマーカーを指定できます。 - key APIキー。
とりあえず基本はこんだけ。ドコモの場合、formタグやaタグの最後に
<form action=”url” method=”GET” lcs>
とlcsをつけると位置情報をプログラムに渡せるので、取得した位置情報を先ほどのURLに渡…したいのですが、実はGoogleとドコモはどちらも世界測地系のWGS84とやらを使っているのですが、ドコモで取得した値はdms(度分秒)なのに対し、ここでAPIに渡す値はdegree(度)になっているので、途中に変換処理をかます必要があります。計算式もあるようですが、PerlならGeo::Coordinates::Converterを使うと、さまざまな表記法を相互変換してくれます。とりあえず、今回のdms→degreeであれば、
use Geo::Coordinates::Converter;
(略)
my $geo = Geo::Coordinates::Converter->new( lat => $lat, lng => $lon, datum => ‘wgs84′);
my $point = $cgeo->convert( dms => ‘degree’ );
こんな感じで緯度・経度・測地系、変換元形式・変換後形式を指定してやればOK。
このモジュールの使い方は、なんか今CPANつながらなかったので、飛んで検索してもらえばよいかと。
- Comments: 0
- Trackbacks: 0
Home > Tags > ドコモ
