ソースコード

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.7326.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