我需要从一组选定的城市中获取最近的城市。
我们公司有一份子公司名单(我国约有100家)。我们每天收到大约3000个请求。此请求应分配给子公司(按地理距离)。
是否有API可以执行此操作?
最好的是(java)GoogleMaps API或类似的网络服务。
最诚挚的问候, 基督教。
答案 0 :(得分:0)
从Nominatim获取坐标,应该直接从java应用程序发出请求。 计算每个城市到每个城市的大圆距离。我不得不承认结果可能是300乘300?阵列。但是它可能只包含整数。将其保存在内存中以备将来使用。 找到行或列中编号最小的条目。
答案 1 :(得分:0)
有点老问题,也许你的答案太迟了。
对于速度问题的一个很好的近似,绝对精度并不重要,就是围绕一个点绘制一个矩形(这里需要找到最近的子公司)。该矩形本身具有NE和SW坐标边界(或NW / SE)。
要找到最近的子公司,需要找到所有NE坐标为" less"而不是矩形和"更多"而不是SW边界。
我在引用"更多"和"少"因为它们可能根据你到底在哪里而有所不同。
几年前,我为自己的需要写了https://github.com/grumlimited/geocalc。看一下有关名称" BoundingArea"。
的部分