我有一个控件,允许用户输入邮政编码或在 iframe 中打开谷歌地图,然后单击地图来选择位置。我目前已经完成了所有工作,iframe 会将点击事件中的纬度/经度发送回父级。
我还设置了一个数据库表,其中的纬度/经度字段映射到邮政编码。
但是,纬度/经度组合很可能永远不会与我在数据库中的条目完全匹配。因此,我正在寻找匹配最接近的邮政编码的最佳方法。
因为用户能够手动输入邮政编码,所以我并不完全担心精度(即,如果用户单击邮政编码之间的边框),但我希望它尽可能接近。我现在只需要担心美国的位置。
我目前的解决方案的想法是提出一些容差(.2?)并查询数据库的纬度/经度+-容差。然后从结果集中选择最接近的匹配项。
我很想听听以前做过这件事的人的意见,或者有比我提出的更好的解决方案的人的意见。我对使用服务不感兴趣,因为我拥有所需的所有数据。
我对我提出的解决方案的一个担忧是弄清楚什么是良好的容忍度。该项目针对农村地区,我不确定这些地区的纬度/经度条目的分布范围如何。
编辑:这是我的表结构:
zip5 |城市 |状态|纬度 |长 |县
zip5 是主键
一分钟纬度(即 1/60 度)= 1 海里,或约 6,000 英尺。因此 5 分钟。纬度 = 约 30,000 英尺 = 约 6 法定英里。
经度向两极变窄,但如果我们将美国大陆视为北纬 36 度左右(我同意一点,但近似值对于此应用来说应该足够了),那么一分钟的经度 ~ 1 海里。 * cos 36 ~ 6,000 * 0.81 = 4,850 英尺。
由于邮政编码(或至少第一组 5 位数字)代表邮局,在农村地区,邮局可能相距 20-30 英里,因此您可能比使用大约 1/2 的经纬度网格更糟糕,或者说10分钟。纬度 x 12 分钟经度。方便起见,它们分别为 1/6 度和 1/5 度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)