将 lat/long 转换为美国州

Convert lat/long to US State

我可以访问 lat/long 坐标列表,我想知道(大致)这些坐标所在的美国州。我可以处理精度损失,但我不能依赖在外部库或 API 上。我还可以在我的代码中添加位置数据库。

这样做的合理方法是什么? 我考虑了 3 种可能性:

  1. 用中心的单个点表示每个状态,然后进行最近邻搜索
  2. 用位于州内城市的点表示每个州,然后进行最近邻搜索(有更多的点)
  3. 用一个简单的边界框表示每个状态,然后使用某种算法查询我的点属于哪个边界框

你认为最好的是什么?我倾向于考虑解决方案 3,但我找不到美国各州的粗略“边界框”列表

  1. 不行,考虑

  1. 很有可能至少在某些州不起作用。考虑towns/cities更多聚集到中间的状态,反对towns/cities聚集到边缘的状态。

  1. 不会工作(这些应该是 90 度角,完美的正方形,但是用鼠标绘图很难:))

如果你想做到这一点,即使是模糊准确,你将需要一些形状数据来定义状态之间的边界。然后你需要一个算法来确定一个点是否在不规则多边形内

List of the United States (US) state boundaries / borders as latitude/longitude pairs for geofence?

我进行了一些搜索,并找到了适合您使用边界框数据集寻找的解决方案。

Whosebug 上的回答:

数据集:LINK

要使用(实现)的算法:LINK

所以是的,正确的实现方法是使用给定数据集的解决方案 3。

希望对您有所帮助:)