Algorithm 确定给定的lat/long是否在美国境内

Algorithm 确定给定的lat/long是否在美国境内,algorithm,geolocation,location,polygon,Algorithm,Geolocation,Location,Polygon,如何确定给定的lat/long是否在美国境内?我希望后端代码在美国境内和美国境外以一种方式运行。由于应用程序的要求,这里不选择IP地理定位 理想情况下,我希望这样做不会影响外部服务。如果您将美国表示为多边形,则可以使用“多边形中的点”算法(如a)来测试该点是否位于多边形内。对于具有n边的多边形,此类型的查询以O(n)时间运行 如果您想要更快但近似的东西,您可以通过类似四叉树的方式对多边形进行(脱机)空间分解,并确定树中哪些叶框位于边界内。对于带有n框的树,找到一个点的封闭叶框的平均(在线)运行时

如何确定给定的lat/long是否在美国境内?我希望后端代码在美国境内和美国境外以一种方式运行。由于应用程序的要求,这里不选择IP地理定位


理想情况下,我希望这样做不会影响外部服务。

如果您将美国表示为多边形,则可以使用“多边形中的点”算法(如a)来测试该点是否位于多边形内。对于具有
n
边的多边形,此类型的查询以
O(n)
时间运行

如果您想要更快但近似的东西,您可以通过类似四叉树的方式对多边形进行(脱机)空间分解,并确定树中哪些叶框位于边界内。对于带有
n
框的树,找到一个点的封闭叶框的平均(在线)运行时间将是
O(log(n))


希望这有帮助。

如果您对这个问题仍感兴趣,可以下载美国的Shapefile

比如说,

包括所有州和地区。因此,此形状文件由57个多多边形组成

具有包含一个多多边形的形状文件

此外,至少还有一个用于海岸线(包括海上)的其他形状文件


使用这些数据集,您应该编制一个程序来确定(纬度、经度)是否位于多多边形中。这是另一个主题。

你在寻找一个数据集,而不是一个编程建议。或者你可以等到美国征服世界其他地区后,再返回“真”:p