ソースコード
60進数表記の緯度経度を10進数表記に変換する。
60進数表記も「度分秒」、「°’”」など、複数の記号表記に対応している。
/**
* 緯度経度を度分秒表記(60進数)から10進数に変換
* @param string or array $p 60進数緯度経度
* - 例
* - 26,40,32.73
* - 26度40分32.73秒
* - 26°40’32.73”
* - 26,40'32.73"
* - N26,40'32.73"
* - array(26,40,32.73)
* @return 10進数緯度経度
*/
function latlon60to10($p){
$res = null;
if(is_array($p)){
$ary = $p;
}else{
if(!is_numeric(mb_substr($p ,0 ,1))){
$p = mb_substr($p ,1 );
}
$ary = preg_split("/,|度|分|秒|°|’|”|'|¥"/",$p);
if(count($ary) < 3){
return null;
}
}
$res = $ary[0] + $ary[1]/60 + $ary[2]/3600;
return $res;
}
検証
60進数表記 |
10進数表記 |
26,40,32.73 | 26.675758333333 |
26度40分32.73秒 | 26.675758333333 |
26°40’32.73” | 26.675758333333 |
N26,40'32.73" | 26.675758333333 |
array(3) {
[0]=>
int(26)
[1]=>
int(40)
[2]=>
float(32.73)
}
| 26.675758333333 |
- ホーム
- サンプルソースコード
- PHP | サンプル
- 緯度経度を度分秒表記(60進数)から10進数に変換