如果我有他们的纬度/经度位置,我如何找出用户的邮政编码?需要帮助编写查询

Posted

技术标签:

【中文标题】如果我有他们的纬度/经度位置,我如何找出用户的邮政编码?需要帮助编写查询【英文标题】:How can I figure out a users postal code if I have their latitude / longitude location? Need help writing a query 【发布时间】:2010-05-20 14:16:14 【问题描述】:

我正在使用 html5 地理位置来收集用户的纬度/经度,我还需要弄清楚他们的邮政编码是什么。我有一个包含美国和加拿大每个邮政编码的所有纬度/经度的数据库。如何编写查询以找出他们的邮政编码?下面是“zips”表中数据结构的示例。

Country  PostalCode  Latitude  Longitude
USA      0051        40.813078 -73.046388
USA      00616       18.426456 -66.673779

我无法执行 'SELECT PostalCode FROM zips WHERE Latitude = user.lat AND Longitude = user.long'。我相信我需要找到最近的纬度/经度。关于我如何写这个的任何建议?

【问题讨论】:

【参考方案1】:

您必须遍历整个邮政编码表,计算邮政编码经纬度与用户经纬度之间的距离。

由于距离比较短,可以使用距离公式:d = SQRT(((PCLA - ULA) ** 2) + ((PCLO - ULO) ** 2))。答案是度数,而不是公里或英里。

离用户最近的邮政编码很可能就是邮政编码。

否则,您可以直接询问用户。 :-)

查看他们给你的邮政编码,计算距离,看看距离是否合理。

这是calculating the distance between two earth coordinates 的更精确公式。

【讨论】:

谢谢!很有帮助。但是,我认为询问用户可能是更好的选择。该表中大约有 100 万条记录,并且不断地在其中使用这么多数据来访问它可能不是最好的主意。 不客气。我们的应用程序中有一个事务可以进行这种距离计算。我们的用户希望我们使用谷歌地图之类的东西,但由于在企业范围内使用谷歌的成本,我们拖了后腿。但是,我们“鼓励”我们的用户在一个窗口中打开交易,并在另一个窗口中打开 Google 地图。 :-)

以上是关于如果我有他们的纬度/经度位置,我如何找出用户的邮政编码?需要帮助编写查询的主要内容,如果未能解决你的问题,请参考以下文章

在不使用地图 android 的情况下从邮政编码中获取纬度和经度

如何使用 Bing 地图检索邮政地址的纬度和经度?

将纬度和经度数据链接到 Bigquery 中的邮政编码

如何使用谷歌地图 api 将邮政编码转换为地理位置(纬度和经度)?

使用 Google Maps API 将邮政编码转换为纬度/经度坐标?

如何在 iOs 中使用 CLGeoCoder 使用邮政编码/邮政编码获取纬度经度?