如果我有他们的纬度/经度位置,我如何找出用户的邮政编码?需要帮助编写查询
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 的情况下从邮政编码中获取纬度和经度
如何使用谷歌地图 api 将邮政编码转换为地理位置(纬度和经度)?