PHS(携帯)の位置情報関連

(

)

by

in

PHS(携帯)の位置情報取得方法及びその関連情報のまとめ
Willcom PHS での位置情報取得
・内蔵ブラウザより以下のリクエストを発行
  http://location.request/dummy.cgi?my=&pos=$location
 すると、 pos= というクエリ文字列が付加されて target_url にリダイレクト(未確認)される
 位置情報は、以下のような日本測地系[度.分.秒.秒の小数点下3桁]座標文字列
  N35.44.21.601E139.36.36.374
・[度.分.秒.秒の小数点下3桁]の日本測地系を、[度.小数点以下]の形式に変換するには、以下の計算式
  = 度 + 分/60 + 秒/3600 + (小数点以下3桁)/3600000
・世界測地系は、[度.小数点以下]の形式で表現されるが、若干の誤差があるので東京あたりであれば、補正をかけて以下の計算式で変換(from 日本測地系[度.分.秒.秒の小数点下3桁]座標文字列)
 コピペなので、内容には自信なし。
緯度 = 度 + 小数点以下切り捨て(分 * 60000 + (秒+12) * 1000 + (小数点以下3桁))/3.6);
経度 = 度 + 小数点以下切り捨て(分 * 60000 + (秒-12) * 1000 + (小数点以下3桁))/3.6);
・2点間の距離(ヒュベニの距離計算式)計算 by PHP
 コピペなので、内容には自信なし。
$fStartLat : 起点の緯度(世界測地系座標(度.小数点以下))
$fStartLng : 起点の経度(世界測地系座標(度.小数点以下))
$fEndLat : 終点の緯度(世界測地系座標(度.小数点以下))
$fEndLng : 終点の経度(世界測地系座標(度.小数点以下))
function dist_m($fStartLat, $fStartLng, $fEndLat, $fEndLng){
$fStartLatRad = deg2rad($fStartLat);
$fStartLngRad = deg2rad($fStartLng);
$fEndLatRad = deg2rad($fEndLat);
$fEndLngRad = deg2rad($fEndLng);
// 緯度平均、緯度差
$fAvgLat = ($fStartLatRad + $fEndLatRad)/2;
$fDiffLat = ($fStartLatRad – $fEndLatRad);
//経度差
$fDiffLng = ($fStartLngRad – $fEndLngRad);
//子午線曲率半径
$hlf = 1 – 0.006674*(sin($fAvgLat)*sin($fAvgLat));
$dmrad = 6334834 / sqrt($hlf*$hlf*$hlf);
//卯酉線曲率半径
$dvrad = 6377397 / sqrt($hlf);
//ヒュベニの距離計算式
$t1 = $dmrad * $fDiffLat;
$t2 = $dvrad*Cos($fAvgLat)*$fDiffLng;
$d = sqrt($t1*$t1 + $t2*$t2);
return round($d); // 戻り値は m
}