我需要从选定的一组城市中选出最近的城市。如何查找选定集合中最近的城市
我们公司有一个附属公司名单(在我国约有100家)。我们每天获得约3000个请求。这些请求应分配给子公司(按地理距离)。
有没有API来做到这一点?
最好是(java)GoogleMaps API或类似的web服务。
最好的问候, 基督徒。
我需要从选定的一组城市中选出最近的城市。如何查找选定集合中最近的城市
我们公司有一个附属公司名单(在我国约有100家)。我们每天获得约3000个请求。这些请求应分配给子公司(按地理距离)。
有没有API来做到这一点?
最好是(java)GoogleMaps API或类似的web服务。
最好的问候, 基督徒。
我会做的是建立您的子公司,基于地理距离的Voronoi diagram和图表存放在会在你的代码中使用的形式。然后,查找每个请求的包含单元格,这将告诉您哪个子公司是最接近的。
如果你真的想使其精确,你可以使用OSM的公路网,构建基于行驶距离,不只是一个地理图。
获取的坐标从Nominatim,它应该是直线前进,使从Java应用程序的请求。 计算每个城市到每个城市的大圆距离。我不得不承认,结果可能会由300乘300?阵列。但它可能只包含整数。将其保存在内存中以备将来使用。 查找行或列中编号最小的条目。
一个老问题的位,也许为时已晚为你的答案。
一种速度的担忧好的近似,其中绝对精度的本质不在于周围画一个点(你需要在这里找到最接近的子公司之一)的矩形。该矩形本身具有NE和SW坐标边界(或NW/SE)。
要找到最接近的子公司,那些需要找到所有的NE坐标比SW边界比长方形的“少”与“多”。
我引用“更多”和“更少”,因为它们可能意味着不同的基础上你在哪里。
我写了https://github.com/grumlimited/geocalc几年前我自己的需要。看看有关名字“BoundingArea”的部分。