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

问题描述 投票:0回答:1

我需要为数据集中的每条记录识别Postal / Zip代码,该数据集包含SQL Server DB中托管的以下格式的位置信息,

Location dataset

为了识别某个地点的邮政编码,我正在使用Geo Names提供的信息,其格式为国家代码,邮政编码,地点,数据1,数据2,数据3,数据4,纬度,经度和准确度,如下所示在文本文件中,

Zip codes and their lat lon location

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

PS。这是我的本科最后一年项目的要求。

c# location geocoding zipcode geonames
1个回答
1
投票

一种可行的方法,虽然它有点蛮力,但是将Haversine Formula应用到初始数据集(第一张图片)中的(Lat,Lon)对到GeoNames中的每个(Lat,Lon)对。数据库。

Haversine公式为您提供两个纬度/经度对之间的大圆距离(请记住,地球是一个地球)。如果您获取第一个示例行,请输入40.769,lon -73.9545,并循环遍历GeoNames数据库中的每个记录,计算大圆距离(对于North Bergan,Weehawken,Union City等),跟踪最近的行您找到的距离,应该能为您提供正确邮政编码的良好指标。

© www.soinside.com 2019 - 2024. All rights reserved.