本文介绍了GPS格式的PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在PHP中制作格式为52.593800,21.448850格式+ 52°35'37.68,+ 21°26'55.86就像Google做的那样? noreferrer>来源

 <?php 

函数DMStoDEC($ deg ,$ min,$ sec)
{

//将DMS(度/分/秒)
转换为十进制格式经度/纬度

返回$ deg +((($ min * 60)+($ sec))/ 3600);
}

函数DECtoDMS($ dec)
{

//将十进制经度/纬度转换为DMS
//(度/分钟/秒)

//这是可能出现在
//的低效率代码段,但为了避免浮动
//点数学问题,我们提取整数部分和浮点数
//通过使用字符串函数部分。

$ vars = explode(。,$ dec);
$ deg = $ vars [0];
$ tempma =0。。$ vars [1];

$ tempma = $ tempma * 3600;
$ min = floor($ tempma / 60);
$ sec = $ tempma - ($ min * 60);

return array(deg=> $ deg,min=> $ min,sec=> $ sec);
}

将数组更改为所需的字符串应该是微不足道的。


how made in PHP from format 52.593800, 21.448850 format +52° 35' 37.68", +21° 26' 55.86" like do it google http://maps.google.pl/maps?hl=pl&t=m&q=52.593800,21.448850 ?

解决方案

Source

<?php

function DMStoDEC($deg,$min,$sec)
{

// Converts DMS ( Degrees / minutes / seconds ) 
// to decimal format longitude / latitude

    return $deg+((($min*60)+($sec))/3600);
}    

function DECtoDMS($dec)
{

// Converts decimal longitude / latitude to DMS
// ( Degrees / minutes / seconds ) 

// This is the piece of code which may appear to 
// be inefficient, but to avoid issues with floating
// point math we extract the integer part and the float
// part by using a string function.

    $vars = explode(".",$dec);
    $deg = $vars[0];
    $tempma = "0.".$vars[1];

    $tempma = $tempma * 3600;
    $min = floor($tempma / 60);
    $sec = $tempma - ($min*60);

    return array("deg"=>$deg,"min"=>$min,"sec"=>$sec);
}   

Should be trivial to change the array to the desired string.

这篇关于GPS格式的PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 11:24