为什么 Openlayers 会切换坐标的经纬度顺序?

Why Openlayers switches lat,lon order for coordinates?

作为非 GIS 专家,我知道,或者更确切地说,曾经知道两种不同格式的 GPS 坐标表示地球表面某个位置的纬度和经度。第一个使用度、分和秒(如果你愿意的话,有点像“英制风格”)。第二个使用十进制度数(如果你愿意的话,有点像“公制风格”)。

当我阅读 WGS84 时,我认为地球是平的...我的意思是球体的信念已经破灭。它是一个椭圆体。不是一个球体。你们这群说谎的老师! :-) 无论如何,我遇到了第三种格式:UTM 坐标系。

例如,伦敦大本钟的 GPS 坐标是:

  1. 度、分和小数秒:51° 30' 2.624" N 0° 7' 28.65" W
  2. 十进制:51.500729,-0.124625
  3. 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] 顺序。当时的软件产品都实现了这个标准。即使稍后标准被修订,软件产品仍然保持[经度,纬度]以避免版本问题。