使用纬度和经度识别位置的邮政编码

Identifying the ZIP code of a location using Latitude and Longitude

我需要为数据集中的每条记录识别 Postal/Zip 代码,其中包含以下格式的位置信息,托管在 SQL 服务器数据库中,

为了识别某个位置的 Postal/Zip 代码,我使用 Geo Names 提供的信息,格式为国家代码、邮政编码、地点、数据 1、数据 2、数据 3、数据 4,文本文件中的纬度、经度和精度如下,

如何识别第一个数据集中每条记录的邮政编码(检查位置纬度是否在邮政编码的纬度范围内)。我试图确定与该主题相关的任何先前问题,但我只能找到 问题,其中答案没有详细说明得出答案所需的过程或计算(仅提供特定于语言的解决方案)。

Ps。这是对我的本科最后一年项目提出的要求。

一种可行的方法是将 Haversine Formula 应用于初始数据集(您的第一张图片)中的 (Lat,Lon) 对 [= GeoNames 数据库中的 15=]each of (Lat,Lon) 对。

Haversine 公式给出了两个 lat/lon 对之间的大圆距离(记住,地球是一个球体)。如果您采用第一个示例行,纬度 40.769,经度 -73.9545,并循环遍历 GeoNames 数据库中的每条记录,计算大圆距离(对于北伯根、威霍肯、联合市等),跟踪最近的你找到的距离,应该可以很好地指示正确的邮政编码。