如何编写“查找最近”算法?例如按地址/邮编/“我的位置”的商店/分店定位器

Posted

技术标签:

【中文标题】如何编写“查找最近”算法?例如按地址/邮编/“我的位置”的商店/分店定位器【英文标题】:How do I write a "find nearest" algorithm? e.g. a store / branch locator by address / zip / "my location" 【发布时间】:2012-01-07 03:54:14 【问题描述】:

我的需求很简单,并且通常在当今任何基于位置的应用程序中实现,向用户显示他/她所在地区的所有“事物”列表(或通过邮政编码/地址)

使用Google Maps API(尤其是新的“store locator library”)听起来是最安全的选择,但如果我想自己开发一些东西,有没有一种“标准”的方法可以做到这一点?有什么选择?雅虎地理位置 API(和反向查找)? (Google Maps API 需要使用他们的地图,而不仅仅是 API)购买邮政编码文件?其他第三方服务?在线的?离线?秘诀是什么?

【问题讨论】:

【参考方案1】:

嗯。邮政编码有多种处理方式,有助于了解它们的工作原理:http://en.wikipedia.org/wiki/ZIP_code

我会购买一个带有 GPS 坐标的 USPS 数据库,然后从那里开始工作。一个简单的 SELECT SQL 查询,在计算向量的大小时使用 LIMIT 或 TOP 10(或任何您想要的许多搜索结果)应该在这里工作。

已经有一段时间了,但是向量计算的算法还算简单,用SQL应该很容易实现:http://www.netcomuk.co.uk/~jenolive/vect5.html

【讨论】:

邮政编码本身在这里会有所帮助,因为您可以解析代码,甚至在执行搜索之前删除相当数量的结果。

以上是关于如何编写“查找最近”算法?例如按地址/邮编/“我的位置”的商店/分店定位器的主要内容,如果未能解决你的问题,请参考以下文章

与指定邮编或地址最近的标记 Google 地图

如何用百度地图查邮编

如何使用 GPS 信息搜索数据库?

邮编混乱。插件似乎已损坏

地址/邮编和电话部分/匹配的复杂查询帮助

谷歌输入法怎么才能输入邮编弹地址