『Geomobilejp_Converter』 – 携帯でGPSを扱うライブラリ

By nakayama - 09/06/08 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

以前にも携帯でGPSを扱えるPEARライブラリを紹介しましたが、
携帯GPS機能が扱えるPEAR::Net_UserAgent_Mobile_GPSを使ってみました
今回は別のGPSを扱えるライブラリ『Geomobilejp_Converter』を紹介したいと思います。

ウノウラボ – 『PHPで携帯位置情報を扱うライブラリ「Geomobilejp_Converter」を作りました
 
PEAR::Net_UserAgent_Mobile_GPSより優れている点は2点あります
・docomoの提供するオープンiエリアの機能を使って座標から地名まで割り出すことが出来きます
・キャリアによって異なる座標の形式を統一してくれます
 
特にキャリアの座標形式の差を吸収してくれるのはありがたい機能です。
 

使い方の参考例

フォーマットを変換する

緯度経度を度単位(degree)と度分秒単位(dms)に相互変換することができます。

require_once '/path/to/Geomobilejp/Converter.php';

$converter = new Geomobilejp_Converter('35.21.03.340', '138.34.45.725', 'wgs84');
$converter = $converter->format('degree');

echo $converter->getLatitude() . "\n";    // 35.350928
echo $converter->getLongitude() . "\n";   // 138.579368

測地系を変換する

測地系を世界測地系(WGS84)と日本測地系(Tokyo)と日本測地系2000(JGD2000)に相互変換することができます。

require_once '/path/to/Geomobilejp/Converter.php';

$converter = new Geomobilejp_Converter('35.21.03.340', '138.34.45.725', 'wgs84');
$converter = $converter->convert('tokyo');

echo $converter->getLatitude() . "\n";    // 35.20.51.663
echo $converter->getLongitude() . "\n";   // 138.34.56.905

キャリアの差を吸収

docomo、au、SoftBank、WILLCOMのGPS機能で送信される緯度経度情報は、パラメータ名やフォーマットに違いがあります。User-Agentによる判定を行って、各違いを吸収する必要があります。Geomobilejp_Converterにはこれらの差をパラメータがあるかどうかのみを単純に判定して吸収するGeomobilejp_Mobileが同梱されています。


require_once '/path/to/Geomobilejp/Mobile.php';

$mobile = new Geomobilejp_Mobile();

if ($mobile->hasParameter()) {

    echo $mobile->getLatitude() . "\n";    // N35.44.33.150
    echo $mobile->getLongitude() . "\n";   // E135.22.33.121
    echo $mobile->getDatum() . "\n";       // wgs84

}

Posted in GPS, PHP • Tags: , , , Top Of Page