C#:如何确定坐标是否在美国大陆?

CMP*_*MPE 5 c# gis utm latitude-longitude coordinates

我得到坐标 - 纬度/经度,我想检查这些坐标是否在美国大陆.有没有一种简单的方法在C#中做到这一点?我可以将坐标转换为MGRS或UTM.谢谢!

Sim*_*Var 6

哦哇,他们只为你准备好了:

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

美国的所有协调国家!构建多边形并应用任何多边形包含点算法.

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


现在,您有两种选择:

  • 使用数据为每个状态构建一个多边形,并检查每个状态的一个点.如果没有匹配,则不在美国.

但是,这种方法存在一个问题 - 我不知道数据是如何收集的,但可能是状态之间的间隙很小,甚至是轻微的重叠.因此,如果您只关心它是否一般在美国,我建议采用第二种方法:

  • 使用数据为每个状态构建多边形,并使用算法将这些多边形组合为一个(如union).保存该多边形,并将其与第一种方法一样使用.