绘制数百甚至数千个地址并进行半径搜索

时间:2011-11-04 23:13:33

标签: google-maps google-maps-api-3 geospatial

在我的网络应用程序中,我有一个企业/客户及其信息列表,包括他们的地址。我想标记其中一个,然后获得半径为X km的其他商家/客户。

我更喜欢用滑块控制X,我更喜欢在地图上显示结果,但这两点都不重要。我该怎么办呢?谷歌地图会成为一个好工具吗?我在哪里可以找到更多信息,或者这方面的一个例子?

4 个答案:

答案 0 :(得分:1)

Google Maps API应该可以很好地解决这个问题。

实际上将它与Fusion tables结合起来,甚至更好。 FT将托管您的数据库,并使'spatial' queries对您的数据变得容易(即在Y的X内的结果)。 FT甚至可以与Maps API集成,以显示查询direct on the map的结果。

答案 1 :(得分:0)

如果您想使用比谷歌地图的API更灵活的开源Javascript库,请使用OpenLayers - 如果您不想支付新的Google Maps API费用,可以使用OpenStreetMap背景图层。使用jQuery UI或Dojo之类的东西创建滑块,并将它们与某些事件处理链接起来。完成工作。

您的后端应用程序是什么写的?各种地理空间库使得空间查询在大多数语言中都很容易。一些谷歌搜索应该提出来。我怀疑你是否需要寻找一个完整的空间数据库,但如果你这样做,那么请查看PostGIS - 这可以做一些事情,比如在一条主要道路的Xkm内找到所有的业务(一旦你得到了所有的数据)当然!)。

www.osgeo.org是开源地理空间软件的最佳起点。那里有很多网络,数据库和桌面工具。

答案 2 :(得分:0)

Google地图不支持本地搜索。它只提供一个API来查找和设置标记并获得方向。它也有一些漂亮的地图。你想要的是寻找近距离目标的harvesine公式。您可以使用空间扩展并搜索切片或目标群集。这只是一个近似值。 FT不支持前者或后者。它只是一个类似Sqlite的数据库来存储您的标记。

答案 3 :(得分:0)

试试mysql spatial extensions。如果你不能实现Radius Query,我认为你不能强烈考虑切换到postgresql + postgis。一旦迁移,这个问题将在5分钟后解决。

另外,对于自定义解决方案,请查看此answer

干杯