2015-04-06 50 views
4

我正在获取坐标 - 纬度/经度,我想检查这些坐标是否在美国大陆。有没有一种简单的方法在C#中做到这一点?我可以将坐标转换成MGRS或UTM。 谢谢!C#:如何确定坐标是否在美国大陆?

+0

您需要有关于美国多边形的数据。一旦你有美国的坐标多边形,你可以很容易地检查它是否包含某个点。 – SimpleVar 2015-04-06 04:34:28

回答

5

哇哦,他们有它只是给你:

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

所有美国各州的COORDS! 构建一个多边形并应用任何包含多边形的点算法。

经典的算法是光线投射,它甚至非常简单。如果您有任何问题,请告诉我。


现在,你有两种选择:

  • 使用数据来建立每个状态的多边形和检查点与他们的每一个。如果没有匹配,它不在美国。

但是,这种方法存在一个问题 - 我不知道数据是如何收集的,但它可能在状态之间很少有差距,或者甚至有轻微的重叠。所以,如果你仅当它通常是在美国或不关心,我建议第二种方法:

  • 使用数据来建立每个状态的多边形,和算法对这些多边形结合起来,一个(如工会) 。保存该多边形并像第一种方法一样使用它。
相关问题