获取国家,州或地区的lat / lng中心

时间:2013-04-08 16:31:02

标签: openstreetmap

鉴于是一个充满了政治区地理数据/名称的父/子关系的数据库:

  • 国家
  • 国家

现在我正在查询该数据,构建一个类似germany,bavaria,ebersberg的字符串,然后我尝试通过Nominatim API(OpenStreetMaps的一部分)获取该区域的lat / lng中心。

示例字符串:

http://nominatim.openstreetmap.org/search?format=xml&polygon=0&addressdetails=0&q=germany,bavaria,ebersberg

问题是,我用lat / lng取回了一堆POI而不是确切的地理数据。这通常导致显示该区域的一半,因为第一个POI可能接近该区域边界。

有没有人知道如何获得中心的lat / lng或如何将OSM地图居中?或者有没有人知道可以实现这一点的替代API并告诉它如何工作/做一个例子?

1 个答案:

答案 0 :(得分:0)

  

有没有人知道如何获得中心的纬度/经度或如何将OSM地图居中?

当你得到一组(列表,设定)纬度和经度的兴趣点时,你有一个特征,而不是问题。

您遍历POI,构建包含所有POI的边界矩形。换句话说,您可以找到最小纬度,最小经度,最大纬度和最大经度。

您可以通过公式

找到矩形的中心
(maximum + minimum) / 2

边界区域应足够小,以免在纬度和经度上产生太多错误。

否则,您可以计算最小纬度,经度和最大纬度,经度之间的距离。该中心距离最小纬度经度的一半。将该中心点转换回您的答案的纬度和经度。