【问题标题】:How do I convert these coordinates to coordinates readable by Google Maps?如何将这些坐标转换为谷歌地图可读的坐标?
【发布时间】:2009-06-15 12:02:13
【问题描述】:

查看page 上的地图坐标。这是从 Wikipedia 链接的,并且坐标通过查询字符串传递。我不确定这个的实际条款,但我如何转换坐标?它们看起来像这样:

37° 14′ 6″ N,115° 48′ 40″ W

我希望它们看起来像这样:

37.235, -115.811111

,这是一种谷歌地图可读的格式,见this example

我如何在 PHP 中做到这一点,这两种不同类型的坐标叫什么?

【问题讨论】:

    标签: php google-maps coordinates


    【解决方案1】:

    原始格式为小时、分钟、秒格式。要转换为十进制,请执行以下操作:

    D = H + M/60 + s/3600

    所以在你的例子中,37,14,6 变成了

    37 + 14/60 + 6/3600 = 37.235,如上所述。

    如果纬度为 N,则结果为正,如果为 S,则为负。 如果经度为 E,则结果为正。如果西,结果是否定的。

    【讨论】:

      【解决方案2】:

      Here 是执行您所说的功能的 Javascript 函数。

      此实用程序允许用户转换纬度和经度 在十进制度和度、分和秒之间。为了 方便,包含国家大地测量局的链接 NADCON 程序,允许在 NAD83 / WGS84 之间进行转换 坐标系和旧的 NAD27 坐标系。 NAD27 坐标目前用于广播授权和 应用程序。

      此实用程序需要启用 Javascript 才能执行 计算。

      【讨论】:

        【解决方案3】:

        我的 PHP 代码来自这篇文章,谢谢!

        function GetLatLon_FromExif($GPS){
        $Lat_Ref = $GPS['GPSLatitudeRef'];
        if($Lat_Ref == "S") { $Lat_Neg = "-"; }
        $Lat_H = explode("/" ,$GPS['GPSLatitude']['0'])[0];
        $Lat_M = explode("/" ,$GPS['GPSLatitude']['1'])[0];
        $Lat_S = explode("/" ,$GPS['GPSLatitude']['2'])[0];
        $Lat_S2 = explode("/" ,$GPS['GPSLatitude']['2'])[1];
        
        $Lon_Ref = $GPS['GPSLongitudeRef'];
        if($Lon_Ref == "W") { $Lon_Neg = "-"; }
        $Lon_H = explode("/" ,$GPS['GPSLongitude']['0'])[0];
        $Lon_M = explode("/" ,$GPS['GPSLongitude']['1'])[0];
        $Lon_S = explode("/" ,$GPS['GPSLongitude']['2'])[0];
        $Lon_S2 = explode("/" ,$GPS['GPSLongitude']['2'])[1];
        
        $Lat = $Lat_H+($Lat_M/60)+(($Lat_S/$Lat_S2)/3600);
        $Lon = $Lon_H+($Lon_M/60)+(($Lon_S/$Lon_S2)/3600);
        
        return $Lat_Neg.$Lat.",".$Lon_Neg.$Lon;
        }
        

        JSON(来自 IMAGE EXIF):

        "GPS": {
          "GPSLatitudeRef": "N",
          "GPSLatitude": [
            "22/1",
            "15/1",
            "1708/100"
          ],
          "GPSLongitudeRef": "W",
          "GPSLongitude": [
            "97/1",
            "52/1",
            "1882/100"
          ],
          "GPSAltitudeRef": "\u0000",
          "GPSAltitude": "9364/369",
          "GPSSpeedRef": "K",
          "GPSSpeed": "2203/12629",
          "GPSImgDirectionRef": "T",
          "GPSImgDirection": "52751/159",
          "GPSDestBearingRef": "T",
          "GPSDestBearing": "52751/159",
          "UndefinedTag:0x001F": "6625/828"
        }
        

        【讨论】:

          【解决方案4】:

          嗯,您提到的页面已经为您提供了 WGS84 和纬度经度格式的坐标

          【讨论】:

          • 是的,我知道,但我只想要一个公式来从坐标中获取纬度和经度 - 正如你所说的格式 WGS84。或者 PHP 中的函数会更好:)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-06
          • 2013-09-22
          相关资源
          最近更新 更多