查看此page上的地图坐标。这是从维基百科链接的,坐标是传递查询字符串。我不确定这个的实际条款,但如何转换坐标?它们看起来像这样:
37°14'6“N,115°48'40”W
我希望他们看起来像这样:
37.235,-115.811111
,这是Google地图可读的格式,如this example中所示。
我如何在PHP中执行此操作,以及两种不同类型的坐标是什么?
答案 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和纬度经度格式的坐标