在GIS服务中编写纬度和经度元组的首选顺序


144

处理GIS源代码时,通常需要编写纬度和经度坐标元组。

例如,在Google Maps链接(123、456)中:

http://maps.google.com/maps/ms?msid=214518704716144912556.00046d7689a99e95b721c&msa=0&ll=123,456&spn=0.007996,0.026865

哪个是首选顺序(为什么?)

  • 纬度,经度

  • 经纬度

我已经看到两者都在各种系统中使用,并且希望找到一些证据可以与其他系统结合使用。

是否有标准做法,如果有,这是什么/它们是什么?


2
您可以查看案件汇编,而不是按优先顺序排列:macwright.org/lonlat
golimar

3
这是latitude, longitude命令
onmyway133

1
我投票结束这个问题,因为它与编程无关,而与地理有关。这也是一个基于意见的问题。
TylerH

1
@MikkoOhtamaa的不同之处在于,您的问题并不询问特定技术规范的要求顺序(可能与请求异地文档信息一样偏离主题),而是“首选”方法是什么是[ 一般 ]。首选的更改取决于您询问的人和使用目的/环境。如这里的答案所示,两种排序都有大量的跟随者。随后,编程关系的问题仍未完全解决。
TylerH

1
@MikkoOhtamaa我对Stack Overflow上的GIS问题没有任何疑问。这不是一个GIS问题。这是一个“我应该如何订购纬度/经度”的问题……您甚至没有想要的特定GIS应用程序。这个问题仍然是基于观点的(要求“首选方法”的任何问题都是基于观点的),范围太广(您要问的是什么背景,场景或应用?正如答案所示,根据这些标准,它是不同的),而不是关于编程(纬度和经度不是编程术语,而是地理术语)。
TylerH

Answers:


210

EPSG:4326特别指出坐标顺序应为纬度,经度。许多软件包仍使用经度,纬度排序。这种情况对项目截止日期和程序员的理智造成了无法想象的破坏。

一个可以提供的最佳指导是充分了解软件堆栈中每个组件的预期轴顺序。PostGIS期望使用lng / lat。WFS 1.0使用lng / lat,但是WFS 1.3.0遵循标准并使用lat / lng。GeoTools默认为lat / lng,但可以使用系统属性覆盖。

值得一读的有关问题的历史和解释的GeoTools文档:http ://docs.geotools.org/latest/userguide/library/referencing/order.html


6
我很少上SO.com答案看到其中规定为什么这口井。摆脱那些“因为MongoDB使用它”的答案。
Mikko Ohtamaa 2012年

1
您的链接与您不同意;在EPSG数据库中,有4326以(纬度,经度)轴顺序映射到地理CRS。但是,该领域的大多数软件都将EPSG:4326理解为具有(经度,纬度)轴顺序的地理CRS,因为传统的OGC规范是通过这种方式设计的。
亚伦·麦克弗

7
我的答案的前两个句子:EPSG:4326特别指出坐标顺序应为纬度,经度。许多软件包仍使用经度,纬度排序。那不是完全一样吗?
Shane

5
如果其他人在使用Google Maps并向其提供KML文件时遇到问题,则顺序为经度/纬度!没有KML文件的文档说明了这一点!!
Turnerj 2014年

2
“没有KML文件的文档说明了这一点”是不正确的。developers.google.com/kml/documentation/kmlreference#point “一个元组,由经度,纬度和海拔的浮点值组成(按此顺序)。”
tmcw


23

在几乎所有专业GIS应用程序中,正确的顺序是经度,纬度,就像传统的数学方法(即f(x ,y, z))一样。GeoJSON标准非常典型且简洁:

The order of elements must follow x, y, z order
(easting, northing, altitude for coordinates in a 
projected coordinate reference system, or longitude,
latitude, altitude for coordinates in a geographic
coordinate reference system).

主要的开放地理空间联盟标准(WKT和WKB,以及类似EWKB的扩展名)也是如此。同样,Google可能会在纬度/经度中输出订单,以使习惯于该习惯的用户更加熟悉(例如,从IMO之类的导航标准开始,而不是从计算标准开始。)但是KML标准本身实际上与所有其他GIS系统一样:

The KML encoding of every kml:Location and coordinate
tuple uses geodetic longitude, geodetic latitude, and
altitude (in that order).

好的经验法则:如果您知道什么是元组并且正在编程,则应使用lonlat。我甚至可以说这也适用,如果你的最终用户(说一个飞行员或船长)将倾向于以查看输出latlon。您可以根据需要在用户界面中切换顺序,但绝大多数数据(shapefile,geojson等)将采用正常的笛卡尔顺序。


4
我在这里看到一些分歧:我有两个选择-太多了!
Mikko Ohtamaa 2011年

6
读者应注意,ISO 6709明确规定您应始终在任何UI中使用[lat,lon]格式,并且-可以推断,这不是个人喜好。
伊恩·柯林斯

9

按照“现实生活”中的约定,在给定位置时,纬度(即北/南)始终为1,例如20°N 56°W(尽管考虑标准的笛卡尔坐标时这并不遵循常规)格); 同样,Wikipedia上的所有坐标均遵循此约定(例如,查看Southampton的位置:http : //en.wikipedia.org/wiki/Southampton)。为了避免混淆,尤其是在不包含单位的情况下,我始终建议将纬度指定为元组的第1个。


9

就我个人而言,除了纬度和经度之外,我什么都没见。

并且,当使用+和-而不是N和S时,总是+是N且-是S。

在E和W上使用+和-时,我观察到了变化。通常,+表示E,-表示W。但是,在较旧的应用程序中,它们过度处理W经度,我看到+表示W且-表示E 。

希望您不必处理过时的应用程序。


使用全球应用程序时,很容易观察到。
Daniel Antunes Pinto 2015年

只需在Google地图中输入任意一对经度和纬度坐标,您就会看到它将其解释为(经度,纬度),反之亦然。这是使用非常广泛的系统的一个例子。
cazort

2
@cazort无论出于什么原因,这里都不会发生。例如,我的家乡俄勒冈州尤金(Eugene)大约在N 44.1,W 123.1。如果在maps.google.com中输入44.1 -123.1,则转到Eugene。如果我输入-123.1 44,它会告诉我找不到它。不过,有趣的是,如果我输入123.1 W 44 N,它会找出并转到Eugene,因此具有一定的灵活性。同样,reference.com / technology /…似乎表明首选是拉特/长。另外,就其价值而言,Google Earth使用经/纬度。
特里


5

因此,首选顺序取决于个人喜好!

纬度排在首位;在“太阳横越赤道”的日子里,春分已经有千年的历史了。3月,从S到N穿过,从N到S穿过。唯一的问题可能是赤道应该为0度还是90度。以0度表示,垂直线与午夜太阳天顶之间的夹角是地球上任何地方的位置纬度。素数纬度或素数平行度有效地定义了自己。

经度只能通过协议达成。英国设立了经度奖。英国需要其船只知道它们的位置,并需要更好的地图。哈里森(http://www.youtube.com/watch?v=T-g27KS0yiY)生产了一款精确的航海天文钟;他们派出了制图之旅,例如詹姆斯·库克(James Cook)1770。因此,英国通过使用格林威治作为地图的000deg来宣称本初子午线。经过100年的使用,本初子午线于1884年被国际接受。

在克里斯托弗·哥伦布时代,纬度是唯一的数字。策略是在向左转或向右转到达目的地之前,先走平行线。看着云还是鸟。每小时以节为单位的速度测量很普遍,但并没有考虑到潮流。哥伦布最大的成就也许是四次从西印度群岛回国。没有这些,他发现的土地就无法添加到地图中。

阅读达瓦·索贝尔(Dava Sobel)的“经度”(Longitude)(ISBN:9780007214228)


1
我认为他的意思是程序设计和技术参考(但我可能会误会)。但是,历史课很有趣。
jww 2014年

1
这与问题无关,但绝对有趣。谢谢:)
Mikko Ohtamaa 2014年

但这确实是有道理的,因为如果仅使用地图坐标,则毫无疑问,顺序将是经度,纬度,例如X,Y;之所以存在这种混乱,是因为到处都有数百年的说(和听)纬度和经度的优先权。
Antti Haapala

5

为了安全起见,ISO 6709将该列表标准化为纬度,经度。格雷厄姆的上述解释对我来说也是正确的。有人建议这个答案与问题无关,它绝对是,并解释了为什么顺序通常以纬度,经度给出。

无论导航员使用该系统的时间长了,都是这样列出的。现在改变这种状况会令人困惑,而且正如ISO所建议的那样,有潜在的危险。GIS软件(例如ArcMap)以相反的方式列出它们,因为这是x,y坐标对的典型约定。纬度是y,经度是x,所以Arc就是这样列出它们的。


1

经度,然后纬度(lon,lat)。

当投影到墨卡托时,经度定义x方向,纬度定义y方向。大多数几何库严格使用这种(lon,lat)格式,因为它是在2D平面中考虑地理坐标的最直观方法。


3
因此,如果这是最直观的思维方式,那么当Google Earth博客在KML中使用lon-lat时为什么将其称为Lat-Long Blog
theta

1
基本上,导航器传统上使用的是lat-lon排序,因此,如果您弄乱了该排序,则可能会搞乱导航。因此,谷歌使用传统的博客和2D平面对其数据结构进行排序。@mkennedy在回答同一问题时最好地回答了这个问题:gis.stackexchange.com/questions/6037/…–
David
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.