将纬度/经度转换为美国州
Posted
技术标签:
【中文标题】将纬度/经度转换为美国州【英文标题】:Convert lat/long to US State 【发布时间】:2020-06-30 15:37:10 【问题描述】:我可以访问经纬度坐标列表,并且我想(大致)知道这些坐标所在的美国州。我可以解决精度损失问题,但我不能依赖外部库或API。我还可以在我的代码中添加位置数据库。
这样做的合理方法是什么? 我想到了 3 种可能性:
-
用其中心的一个点表示每个状态,然后进行最近邻搜索
通过位于州内城市的点来表示每个州,然后进行最近邻搜索(点更多)
用一个简单的边界框表示每个状态,然后使用某种算法查询我的点属于哪个边界框
你认为什么是最好的?我倾向于考虑解决方案 3,但我找不到美国各州的粗略“边界框”列表
【问题讨论】:
你不能使用外部图书馆,因为这是学校作业? @NomadMaker 不,更多的是我真的不能为此拉大外部依赖项 【参考方案1】:我进行了一些搜索,并通过边界框数据集找到了适合您正在寻找的解决方案。
*** 上的回答:LINK
数据集:LINK
要使用的算法(实现):LINK
所以是的,实现它的正确方法是使用带有给定数据集的解决方案 3。
希望对你有帮助:)
【讨论】:
非常感谢!我正在努力找出这个数据集,非常感谢! 请记住,由于数据集不能 100% 精确,因此总会存在一些精度错误【参考方案2】:-
行不通,考虑
-
很有可能至少在某些州不工作。考虑城镇/城市集中在中间的州,以及城镇/城市集中在边缘的州。
-
不起作用(这些应该是 90 度角,完美的正方形,但用鼠标绘图很难:))
如果您想稍微准确地执行此操作,您将需要一些定义状态之间边界的形状数据。然后,您将需要一个算法来确定一个点是否在不规则多边形内
见List of the United States (US) state boundaries / borders as latitude/longitude pairs for geofence?
【讨论】:
谢谢!的确,前两种方法非常不准确,但它们也很快(至少方法 1)我将尝试专注于方法 3以上是关于将纬度/经度转换为美国州的主要内容,如果未能解决你的问题,请参考以下文章