C#: 如何确定一个坐标是否在美国大陆范围内?

5

我正在获得经纬度坐标,并且想要检查这些坐标是否在美国大陆范围内。在C#中有没有简便的方法?我可以将这些坐标转换为MGRS或UTM格式。 谢谢!


你需要拥有关于美国多边形的数据。一旦你有了美国坐标的多边形,就可以轻松地检查它是否包含某个点。 - SimpleVar
1个回答

7

哇,这个网站是专门为您提供的:

http://econym.org.uk/gmap/states.xml

该网站提供了美国各州的坐标!可以根据这些坐标建立多边形并应用任何“多边形包含点”的算法。

经典算法是射线投射(ray-casting),它甚至非常简单。如果您对此有任何疑问,请让我知道。


现在,您有两个选择:

  • 使用数据为每个州建立一个多边形,然后检查每个州是否包含该点。如果都不符合,则该点不在美国。

但是,该方法存在问题-我不知道数据是如何收集的,但可能州之间的空隙很小,甚至有轻微重叠。因此,如果您只关心该点是否在美国境内,我建议使用第二种方法:

  • 使用数据为每个州建立一个多边形,并使用一种算法组合这些多边形到一个多边形中(例如并集)。保存该多边形并像第一种方法一样使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接