C#:如何判断一个坐标是否在美国本土?

C#: How to determine if a coordinates is in the continental United States?

我正在获取坐标 - lat/lon,我想检查这些坐标是否在美国本土。在 C# 中有简单的方法吗?我可以将坐标转换为 MGRS 或 UTM。 谢谢!

哇哦,他们专门为你准备的:

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

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

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


现在,您有两个选择:

  • 使用数据为每个州构建一个多边形,并与每个州检查一个点。如果 none 匹配,则不在美国。

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

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