Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用纬度和经度标识位置的邮政编码_C#_Location_Geocoding_Zipcode_Geonames - Fatal编程技术网

C# 使用纬度和经度标识位置的邮政编码

C# 使用纬度和经度标识位置的邮政编码,c#,location,geocoding,zipcode,geonames,C#,Location,Geocoding,Zipcode,Geonames,我需要识别数据集中每个记录的邮政编码/邮政编码,该数据集中包含SQL server数据库中托管的以下格式的位置信息 为了识别某个地点的邮政编码,我使用的信息格式为国家代码、邮政编码、地点、数据1、数据2、数据3、数据4、纬度、经度和精度,如下所示: 如何识别第一个数据集中每个记录的邮政编码(检查位置lat lang是否在邮政编码的lat lang范围内)。我试图找出与此主题相关的任何以前的问题,但我只能找到答案没有详细说明得出答案所需的程序或计算的问题(仅提供特定语言的解决方案) 注:这是我

我需要识别数据集中每个记录的邮政编码/邮政编码,该数据集中包含SQL server数据库中托管的以下格式的位置信息

为了识别某个地点的邮政编码,我使用的信息格式为国家代码、邮政编码、地点、数据1、数据2、数据3、数据4、纬度、经度和精度,如下所示:

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


注:这是我本科最后一年项目的一个要求。

一个可行的方法,尽管有点暴力,就是将初始数据集(第一张图片)中的(Lat,Lon)对应用于GeoNames数据库中的(Lat,Lon)对


哈弗森公式给出了两个lat/lon对之间的大圆距离(记住,地球是一个球体)。如果您以第一个示例行lat 40.769、lon-73.9545为例,循环浏览GeoNames数据库中的每个记录,计算大圆距离(对于北伯根、威霍肯、联合城等),跟踪您找到的最近距离,这将为您提供一个正确邮政编码的良好指示器。

对于每个记录,您需要找到最近的邮政编码,但由于您尚未告诉我们您的数据库服务器是什么,因此我们无法帮助您完成这一部分。应该有很多问题已经解决了。你被困在哪里了@DavidG为没有列出这些技术而道歉。我现在已经更新了问题。SQL Server将为您完成所有这些工作。@SoufianeTahiri非常抱歉出现任何困惑。我必须识别第一个数据集中每个记录的邮政编码。我获取了一个包含邮政编码和lat lang信息的文本文件,但我不确定如何继续检查记录是否在邮政编码的lat lang范围内。关于Haversine,这一点很好,但在这里的应用场景中(某个位置的邮政编码),可以假设地球表面是平的,作为邮政编码的一部分,地球表面的曲率不应该大到成为一个重要因素。此外,由于邮政编码区域的形状通常非常不规则,因此在假定平面度为elgonzo的情况下,如果每个邮政编码区域仅给出一个点位置为有效点,则无法避免一定的模糊性/错误。我提供哈弗森不仅仅是因为它在任何地方(平面或地球)都很有用,还因为它能够方便地计算给定lat/lon对的距离。诚然,另一个功能可以被取代。但我认为这种方法是合理的。你关于邮政编码界限模糊的观点是正确的。在这里,我认为我们要听命于那些向地理名称地图投掷飞镖并确定给定点定义了给定邮政编码的“中心”(?)的人:-)我并不是想怀疑你的答案,并声称哈弗森不是一个合理的方法。对不起,如果我的评论可以这样解释,但这不是我的本意。当然,使用哈弗森是一种合理的方法。我只是想指出,在给定使用场景的限制范围内,简化的方法也可能是可行的。再一次,如果这是错误的,我道歉…我一点也不这么认为,埃尔贡佐!!!你是完全正确的,指出当你不考虑长途旅行时,你真的不需要求助于哈弗森来获得准确的答案,这会增加讨论的价值!感谢您加强了讨论!我试图找到其他方法,但最终使用了这个方法,因为它非常简单。