Java 如何从所选集合中查找最近的城市

Java 如何从所选集合中查找最近的城市,java,google-maps,postgis,openstreetmap,Java,Google Maps,Postgis,Openstreetmap,我需要从选定的一组城市中找到最近的城市 我们公司有一系列子公司(在我国大约有100家)。我们每天收到大约3000个请求。该请求应分配给子公司(按地理距离) 是否有一个API来实现这一点 最好是(java)谷歌地图API或类似的Web服务 致以最良好的祝愿, Christian.从中获取坐标,从java应用程序发出请求应该很简单。 计算每个城市到每个城市的大圆距离。我得承认结果可能是300乘300?数组。但是,它可能只包含整数。将其保存在内存中以备将来的请求。 在行或列中找到数字最少的条目。我要做

我需要从选定的一组城市中找到最近的城市

我们公司有一系列子公司(在我国大约有100家)。我们每天收到大约3000个请求。该请求应分配给子公司(按地理距离)

是否有一个API来实现这一点

最好是(java)谷歌地图API或类似的Web服务

致以最良好的祝愿, Christian.

从中获取坐标,从java应用程序发出请求应该很简单。 计算每个城市到每个城市的大圆距离。我得承认结果可能是300乘300?数组。但是,它可能只包含整数。将其保存在内存中以备将来的请求。
在行或列中找到数字最少的条目。

我要做的是根据地理距离构建一个子公司的关系图,并将该关系图存储在代码中可以使用的形式中。然后,查找每个请求的包含单元格,它将告诉您哪个子公司是最近的


如果你真的想让它更精确,你可以使用OSM的道路网络来根据行驶距离而不是地理距离来构建图表。

这是一个老问题,对你来说可能太晚了

对于绝对精度不重要的速度问题,一个很好的近似方法是围绕一个点绘制一个矩形(您需要在此处找到最接近的点)。该矩形本应具有NE和SW坐标边界(或NW/SE)

要找到最近的子公司,需要找到NE坐标比矩形坐标“小”且比SW边界坐标“多”的所有子公司

我引用“更多”和“更少”,因为它们的意思可能与你在地球上的位置不同

几年前,我为自己的需要而写作。请看一下有关名称“边界区域”的部分