为什么 Openlayers 会切换坐标的经纬度顺序?
Why Openlayers switches lat,lon order for coordinates?
作为非 GIS 专家,我知道,或者更确切地说,曾经知道两种不同格式的 GPS 坐标表示地球表面某个位置的纬度和经度。第一个使用度、分和秒(如果你愿意的话,有点像“英制风格”)。第二个使用十进制度数(如果你愿意的话,有点像“公制风格”)。
当我阅读 WGS84 时,我认为地球是平的...我的意思是球体的信念已经破灭。它是一个椭圆体。不是一个球体。你们这群说谎的老师! :-) 无论如何,我遇到了第三种格式:UTM 坐标系。
例如,伦敦大本钟的 GPS 坐标是:
- 度、分和小数秒:51° 30' 2.624" N 0° 7' 28.65" W
- 十进制:51.500729,-0.124625
- UTM:30U区 E:699565.68 N:5709430.72
来源:https://www.gps-latitude-longitude.com/gps-coordinates-of-london-big-ben
UTM 坐标(格式 3)值得注意的是,与我更熟悉的格式 1 和格式 2 相比,纬度和经度已经颠倒了。
所以我想知道,是不是因为 UTM 坐标,OpenLayers 对纬度、经度坐标使用“反向”顺序(参见 https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html)?
事后思考:如果开发 OpenLayers 是为了进一步使用各种地理信息,难道不应该修复这个“异常”,让非 GIS 专家更容易使用它吗?
编辑:也许我不应该在这里提到 UTM。为什么 Openlayers 期望坐标顺序为 [lon, lat] 而不是“通常”的 [lat, lon] 顺序?
var coord = [7.85, 47.983333];
var out = toStringHDMS(coord);
// out is now '47° 58′ 60″ N 7° 50′ 60″ E'
根据 ISO 6709,正确的顺序是 [latitude, longitude]。
但是许多软件产品和标准要求 [lon, lat] 顺序。不仅是 OpenLayers,还有 PostGis、GeoJSON、KML 和几乎所有专业 GIS 应用程序。
我能想到计算机科学家对它的定义与地理学家不同的两个原因。
- 常规数学写
f(x,y)
,即先东后北。
- 2000 年的 WMS 规范 1.0 间接定义了 [lon, lat] 顺序。当时的软件产品都实现了这个标准。即使稍后标准被修订,软件产品仍然保持[经度,纬度]以避免版本问题。
作为非 GIS 专家,我知道,或者更确切地说,曾经知道两种不同格式的 GPS 坐标表示地球表面某个位置的纬度和经度。第一个使用度、分和秒(如果你愿意的话,有点像“英制风格”)。第二个使用十进制度数(如果你愿意的话,有点像“公制风格”)。
当我阅读 WGS84 时,我认为地球是平的...我的意思是球体的信念已经破灭。它是一个椭圆体。不是一个球体。你们这群说谎的老师! :-) 无论如何,我遇到了第三种格式:UTM 坐标系。
例如,伦敦大本钟的 GPS 坐标是:
- 度、分和小数秒:51° 30' 2.624" N 0° 7' 28.65" W
- 十进制:51.500729,-0.124625
- UTM:30U区 E:699565.68 N:5709430.72
来源:https://www.gps-latitude-longitude.com/gps-coordinates-of-london-big-ben
UTM 坐标(格式 3)值得注意的是,与我更熟悉的格式 1 和格式 2 相比,纬度和经度已经颠倒了。 所以我想知道,是不是因为 UTM 坐标,OpenLayers 对纬度、经度坐标使用“反向”顺序(参见 https://openlayers.org/en/latest/apidoc/module-ol_coordinate.html)?
事后思考:如果开发 OpenLayers 是为了进一步使用各种地理信息,难道不应该修复这个“异常”,让非 GIS 专家更容易使用它吗?
编辑:也许我不应该在这里提到 UTM。为什么 Openlayers 期望坐标顺序为 [lon, lat] 而不是“通常”的 [lat, lon] 顺序?
var coord = [7.85, 47.983333];
var out = toStringHDMS(coord);
// out is now '47° 58′ 60″ N 7° 50′ 60″ E'
根据 ISO 6709,正确的顺序是 [latitude, longitude]。
但是许多软件产品和标准要求 [lon, lat] 顺序。不仅是 OpenLayers,还有 PostGis、GeoJSON、KML 和几乎所有专业 GIS 应用程序。
我能想到计算机科学家对它的定义与地理学家不同的两个原因。
- 常规数学写
f(x,y)
,即先东后北。 - 2000 年的 WMS 规范 1.0 间接定义了 [lon, lat] 顺序。当时的软件产品都实现了这个标准。即使稍后标准被修订,软件产品仍然保持[经度,纬度]以避免版本问题。