如何将这些坐标转换为Google地图可读的坐标?

时间:2009-06-15 12:02:13

标签: php google-maps coordinates

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

37°14'6“N,115°48'40”W

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

37.235,-115.811111

,这是Google地图可读的格式,如this example中所示。

我如何在PHP中执行此操作,以及两种不同类型的坐标是什么?

4 个答案:

答案 0 :(得分:25)

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

D = H + M / 60 + s / 3600

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

如上所述,

37 + 14/60 + 6/3600 = 37.235。

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

答案 1 :(得分:1)

Here是Javascript函数,可以完成您所说的内容。

  

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

     

此实用程序要求启用Javascript以执行   计算

答案 2 :(得分:0)

我来自这篇文章的 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"
}

答案 3 :(得分:-1)

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