代码之家  ›  专栏  ›  技术社区  ›  Nick Randell

在坐标系中,如何确定lat long坐标是否有效?

  •  8
  • Nick Randell  · 技术社区  · 17 年前

    如果我有一个纬度/经度上的点,我想知道它是否在一个特定的坐标系中有效,我该怎么做?

    作为一个例子。假设我在瑞士网格(ch 1903,epsg 21781)中工作,并且在英国伦敦有一个点代表某种东西,我想知道该点在瑞士网格坐标系中是否有效。

    通常情况下,转换会起作用,但它可能远远超出了瑞士电网的适用范围,因此它并不真正有效。

    这样做的上下文是,用户将把纬度经度中的点导入到一个应用程序中,该应用程序在投影坐标系中工作,并且当他们导入的点超出投影坐标系边界时,他们希望得到警告。

    但据我所知,投影坐标系没有任何边界。

    5 回复  |  直到 17 年前
        1
  •  7
  •   Reed Copsey    17 年前

    虽然列出的答案是正确的-在坐标系中没有“界限”的概念,但是仍然有一些方法可以使用。

    这个 EPSG database 为定义的每个坐标系提供纬度/经度边界框。这列在“面积”表中,并提供了一个(尽管粗糙)边界框,其中坐标系是合理的。仅此一项就足以帮助您确定一个合理的范围。

    通过检查点的坐标和epsg db中的四个角,您应该能够知道坐标对于给定的投影是否(潜在的)合理。

        2
  •  2
  •   Michael Todd    17 年前

    您在坐标系上设置了一个人工边界,说明系统本身存在一个限制(即,一个点“超出”边界,因为它超出了我关心的区域)。

    在这种情况下,找到你感兴趣的区域的“角落”。如果一个点落在这些界限之外,那么您可以将该点标记为在您感兴趣的区域之外。

        3
  •  1
  •   Alex B    17 年前

    给定坐标系的边界特定于该坐标系,因此没有通用算法来确定坐标是否超出边界。

    除此之外,“越界”可能是特定于您的域的。例如,在瑞士电网中,400N 200E不在瑞士,因此超出了瑞士电网的典型使用范围,但仍然代表着一个真实的地方。这是否超出了您的域范围?

        4
  •  1
  •   Chris Arguin    17 年前

    很抱歉,但是你还是坚持自己去实现一些事情,因为它真的需要你的规则。投影坐标系通常没有边界,但有错误行为。对于一个特定的应用,一个给定的投影坐标系通常只在一定的范围内足够精确。

    因此,简短的回答是,它确实需要取决于您的应用程序来施加这些限制。每一个坐标系都是不同的,你的需求会驱动很多坐标系。例如,也许您需要100米的精度,在这种情况下,瑞士网格可能足够大的面积。如果你需要10米的准确度,在边缘情况下积累的误差会变得更快,因此你的边界必须更紧。

    使用“四角边界框”方法将在大部分时间内有效,但它不是通用的。有些投影边界最好用“从中心点到半径”来表示,如果有“到本初子午线的距离”的话,我不会感到震惊。所有的问题都在于给定投影的误差是如何累积的。

        5
  •  1
  •   milovanderlinden    17 年前

    EPSG和自定义投影可从以下网址获得:

    http://www.spatialreference.org/

    在站点中搜索您的EPSG代码,您可以看到列出的坐标。