如何确定经纬度坐标在坐标系中是不是有效?
Posted
技术标签:
【中文标题】如何确定经纬度坐标在坐标系中是不是有效?【英文标题】:How can I find if a lat long coordinate is valid in a coordinate system?如何确定经纬度坐标在坐标系中是否有效? 【发布时间】:2009-07-21 16:41:54 【问题描述】:如果我有一个纬度/经度点,我想知道它是否适用于特定坐标系,我该怎么做?
举个例子。假设我在 Swiss Grid (CH 1903, EPSG 21781) 工作并且有一个点代表英国伦敦的某物,我想知道该点在 Swiss Grid 坐标系中是否有效。
转换通常会起作用,但它可能在瑞士电网适用的区域之外太远,因此它不是真正有效的。
这样做的背景是,用户会将经纬度点导入到在投影坐标系中工作的应用程序中,并且当他们导入的点超出投影坐标系边界时,他们希望收到警告。
但据我所知,投影坐标系没有任何界限。
【问题讨论】:
【参考方案1】:尽管列出的答案是正确的 - 坐标系中没有“边界”的概念,但您仍然可以使用一些方法。
EPSG database 为定义的每个坐标系提供纬度/经度边界框。这在“区域”表中列出,并提供了一个(尽管粗略的)边界框,其中的坐标系是合理的。仅此一项就足以帮助您确定合理的范围。
通过检查点的坐标以及 EPSG DB 中的四个角,您应该能够判断坐标对于给定投影是否(可能)合理。
【讨论】:
谢谢你 - 非常有趣。看起来这可以完成这项工作。【参考方案2】:您通过声明系统本身存在限制(即,一个点“超出”边界,因为它落在我关心的区域之外),从而对坐标系施加了人为的界限。
在这种情况下,找到您感兴趣的区域的“角落”。如果某个点超出了这些范围,那么您可以将该点标记为您感兴趣的区域之外。
【讨论】:
【参考方案3】:给定坐标系的界限是特定于该坐标系的,因此没有通用算法来确定坐标是否超出界限。
除此之外,“越界”可能特定于您的域。例如,在瑞士电网中,400N 200E 不在瑞士,因此超出了瑞士电网的典型使用范围,但仍代表一个真实的地方。这是否超出您的域的范围?
【讨论】:
【参考方案4】:抱歉,您无法自行实施某些事情,因为它确实需要成为您的规则。投影坐标系通常没有界限,但它们有错误行为。对于特定的应用程序,给定的投影坐标系通常仅在某些范围内足够准确。
因此,简短的回答是,确实需要由您的应用程序来施加这些限制。每个坐标系都是不同的,你的需求会驱动很多。例如,您可能需要 100 米的精度,在这种情况下,Swiss Grid 可能足以满足相当大的区域。如果您需要 10 米的精度,在边缘情况下累积的误差会变得更快,因此您的界限必须更严格。
使用“四角边界框”方法大部分时间都可以使用,但并不通用。一些投影范围更好地表示为“距中心点的半径”,如果某些地方“距本初子午线的距离”,我不会感到震惊。这完全取决于给定投影的错误是如何累积的。
【讨论】:
【参考方案5】:EPSG 和自定义投影可在以下位置获得:
http://www.spatialreference.org/
在网站上搜索您的 EPSG 代码,您可以看到列出的坐标。
【讨论】:
这并没有真正的帮助。它所显示的只是中心位置。上面确定的 epsg 数据库提供了更多帮助,因为它提供了一种获取边界框的方法 这是不正确的。也许您忽略了 wgs84 界限和预计界限?请参阅:spatialreference.org/ref/epsg/28992 示例 我正在与空间参考的开发人员核实他们是否可以通过休息接口公开 wgs84 和投影边界框。然后,它可以为您提供互联网查询,以查看坐标是否有效。以上是关于如何确定经纬度坐标在坐标系中是不是有效?的主要内容,如果未能解决你的问题,请参考以下文章