※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。 また、編集部はこの内容について正確性を保証できません。
今回はすっかりメジャーになったWEBデータの切り口、緯度経度をまとめてみました。 文書(文字列)としてのWEBを押さえた後は、位置情報とGoogleさんはさすがです。 あとは時間と人の軸かな。。 最近はGoogleMapsの影響か、緯度経度をデータとして扱う機会が増えてきています。 RCMSでも緯度経度はデータの切り口として、重要視しています。 (他には、時間(日付)・人などがあります) RCMShttp://www.r-cms.jp/日本であればここにたくさんデータがあるので、この辺を活用して、国土数値情報ダウンロードサービスGoogleMapsAPIYahoo!地図情報などとつなぐといろいろなサービスが展開できますよね。GoogleMapsのジオコーディングを使ったり。 まあ、そうやってGoogleさんに位置情報をせっせと送信することになるのですが。。 以下は、うちで使っている緯度経度関係の関数です。 ※正しい保証はありません。自己責任でご利用ください。 <?PHP /*  * 2地点間の距離を緯度経度データから割り出す  * gmap_x :A地点の経度  * gmap_y :A地点の緯度  * gmap_x2:B地点の経度  * gmap_y2:B地点の緯度  * return (km)  */ function getDistanceFromGPS($gmap_x,$gmap_y,$gmap_x2,$gmap_y2){   $gmap_y = 3.1415926535*$gmap_y/180;   $gmap_x = 3.1415926535*$gmap_x/180;   $gmap_y2 = 3.1415926535*$gmap_y2/180;   $gmap_x2 = 3.1415926535*$gmap_x2/180;   $gmap_y = $gmap_y - ((11.55/60)*3.1415926535/180)*sin(2*$gmap_y);   $gmap_y2 = $gmap_y2 - ((11.55/60)*3.1415926535/180)*sin(2*$gmap_y2);   $c=cos($gmap_y)*cos($gmap_y2)*cos($gmap_x-$gmap_x2)+sin($gmap_y)*sin($gmap_y2);   $s=sqrt(1-$c*$c);   $t=$s/$c;   $z=atan($t);   $z=6369*$z;   return $z; } /*  * 緯度経度を度=>度分秒 or 度分秒=>度に変換  * map_num :緯度経度  * return 緯度経度  */ function changeGPSUnit($map_num,$type = 0){     if($type == 1){         //度分秒=>度       $arrMap_num = split(".",$map_num);       return $arrMap_num[0] + $arrMap_num[1]/60 + $arrMap_num[2]/3600;     }else{         //度=>度分秒         $EH = floor($map_num);         $EM = floor(($map_num - $EH)*60);         $ES = round(($map_num - $EH - $EM/60)*3600,1);         return $EH.".".$EM.".".$ES;     } } /*  * 緯度経度を日本測地系=>世界測地系 or 世界測地系=>日本測地系に変換  * ln :経度  * la : 緯度  * return 緯度経度  */ function changeGPSWJ($ln,$la,$type = 0){     if($type == 1){         //日本測地系=>世界測地系         $lng = $ln - $la * 0.000046038 - $ln * 0.000083043 + 0.010040;         $lat = $la - $la * 0.00010695 + $ln * 0.000017464 + 0.0046017;         return array("lng"=>$lng,"lat"=>$lat);     }else{         //世界測地系=>日本測地系         $lng = $ln + $la * 0.000046047 + $ln * 0.000083049 - 0.010041;         $lat = $la + $la * 0.00010696 - $ln * 0.000017467 - 0.0046020;         return array("lng"=>$lng,"lat"=>$lat);     } } ?> [元記事]http://www.diverta.co.jp/topics_detail2/&id=31

人気記事トップ10

人気記事ランキングをもっと見る