2012-09-09 37 views
2

我需要从选定的一组城市中选出最近的城市。如何查找选定集合中最近的城市

我们公司有一个附属公司名单(在我国约有100家)。我们每天获得约3000个请求。这些请求应分配给子公司(按地理距离)。

有没有API来做到这一点?

最好是(java)GoogleMaps API或类似的web服务。

最好的问候, 基督徒。

回答

2

我会做的是建立您的子公司,基于地理距离的Voronoi diagram和图表存放在会在你的代码中使用的形式。然后,查找每个请求的包含单元格,这将告诉您哪个子公司是最接近的。

如果你真的想使其精确,你可以使用OSM的公路网,构建基于行驶距离,不只是一个地理图。

0

获取的坐标从Nominatim,它应该是直线前进,使从Java应用程序的请求。 计算每个城市到每个城市的大圆距离。我不得不承认,结果可能会由300乘300?阵列。但它可能只包含整数。将其保存在内存中以备将来使用。 查找行或列中编号最小的条目。

0

一个老问题的位,也许为时已晚为你的答案。

一种速度的担忧好的近似,其中绝对精度的本质不在于周围画一个点(你需要在这里找到最接近的子公司之一)的矩形。该矩形本身具有NE和SW坐标边界(或NW/SE)。

要找到最接近的子公司,那些需要找到所有的NE坐标比SW边界比长方形的“少”与“多”。

我引用“更多”和“更少”,因为它们可能意味着不同的基础上你在哪里。

我写了https://github.com/grumlimited/geocalc几年前我自己的需要。看看有关名字“BoundingArea”的部分。

相关问题