如何将这些坐标转换为谷歌地图可读坐标?

发布于 2024-08-07 19:31:49 字数 167 浏览 5 评论 0原文

我需要将坐标转换为以下形式:

N42-53.9° 
W072-16.2°

转换为如下所示的内容:

-90.7311
0.346944

php 函数将不胜感激 - 或者只是一个公式也足够好了。

I need to convert coordinates in the following form:

N42-53.9° 
W072-16.2°

Into something that is like the following:

-90.7311
0.346944

A php function would be greatly appreciated - or just a formula would also be nice enough.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

猫七 2024-08-14 19:31:49

我找到了一个 在线 JS 计算器 和一个 PHP 解决方案

<?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);
}    
?> 

I found an online JS calculator and a PHP solution:

<?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);
}    
?> 
貪欢 2024-08-14 19:31:49

用简单的数学来做:

arcsecond is 1⁄3,600 of a degree
arcminute is 1/60 of a degree

S,E negative, N,W positive

example: S 23° 25' 33.8: -1 * 23+25/60+33.8/3600 = -23,426055555555555555555555555556°

Do it with simple mathematics:

arcsecond is 1⁄3,600 of a degree
arcminute is 1/60 of a degree

S,E negative, N,W positive

example: S 23° 25' 33.8: -1 * 23+25/60+33.8/3600 = -23,426055555555555555555555555556°
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文