AD-EDITって?


ブラウザからブログ感覚でホームページを編集できるソフトです。
これらの類のソフトを総称してCMS(コンテンツマネジメントシステム)とも呼びます。

>> ダウンロードはこちらから <<

 

2010年4月30日金曜日

docomo携帯のGPS機能を使ったGoogleMapの表示

携帯用GoogleMapページに現在地表示機能を追加したときの技術的メモ

1.docomo携帯のGPSの概要


・地図ページを表示する前にGPS測位を行わないといけない
・世界測地系(WGS84)を利用して測位
・取得できる経度/緯度はdms方式(60進法:±ddd.mm.ss.sss)
【dms:lat例】
 +38.22.26.898 (北緯38度22分26.898秒)
【dms:lon例】
 +126.35.12.268 (東経126度35分12.268秒)
・地図ページのURLにGET/POST方式で任意の変数を送ることができる

2.地図ページへのリンク - GET方式


<a>タグにlcsを付加する。

<a href="/gpsmap.cgi" lcs>現在地表示</a>

※ gpsmap.cgi?name1=value などとして変数を送ることも可

3.地図ページへのリンク - POST方式


<form>タグにlcsを付加する。

<form method="post" action="/gpsmap.cgi" lcs>
<input type="hidden" name="name1" value="value1">
<input type="hidden" name="name2" value="value2">
<input type="submit" value="現在地表示">
</form>

4.地図ページにおいて経度/緯度を取得



PerlCGIなどで引数を受け取る

##フォームの取得
my $query = CGI->new;
*in = $query->Vars();

↓フォームを取得した結果↓

$in{'lat'} ←緯度が格納される(+38.22.26.898)
$in{'lon'} ←経度が格納される(+126.35.12.268)

6.60進数のdms方式を10進数に変換



下記は、$in{'lat'}を60進→10進変換の例

($idoD,$idoM,$idoS1,$idoS2)=split(/\./,$in{'lat'});
$idoM=$idoM/60; #度を60で割る
$idoS=$idoS1.'.'.$gidoS2;
$idoS=$idoS/3600; #秒を60*60で割る
$ido=$idoD+$idoM+$idoS;

6.GoogleMapの画像を呼出し



GoogleMapから地図画像を呼び出すには
小数点6桁の緯度/経度に1000000を乗した整数を送る必要がある
GoogleMapでは、WGS84系の測地系が使用されるので注意


【GoogleMapの呼出し例】
http://maps.google.com/mapdata?latitude_e6=26215909&longitude_e6=127667398&zm=300&w=200&h=200&cc=US&min_priority=1&Point=b&Point.latitude_e6=26215909&Point.longitude_e6=127667398&Point.iconid=16&Point=e

【上記URLに送る変数】
latitude_e6 地図の緯度(小数点6桁を整数化したもの)
longitude_e6 地図の経度(小数点6桁を整数化したもの)
Point.latitude_e6 マーカー緯度(小数点6桁を整数化したもの)
Point.longitude_e6 マーカー経度(小数点6桁を整数化したもの)
zm 縮尺
w 地図画像の幅(px)
h 地図画像の高さ(px)

【小数点6桁を整数化する変換式】
$in{'lat'}に、38.32659863261561が格納されている場合
$lat=int($in{'lat'}*1000000);
として38326598の整数値を得る


上記方法は現在利用できなくなりました(2010/10/5)

▼新しい方法はこちら▼
「GoogleMapの固定画像を切り出す新しい方法」

Docomo公式サイトの仕様


http://www.nttdocomo.co.jp/service/imode/make/content/gps/

0 件のコメント:

コメントを投稿