1

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

  • 国家
  • 状态

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

示例字符串:

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

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

有谁知道获得中心纬度/经度的方法或如何使 OSM 地图居中?或者有没有人知道可以实现这一点并说明它是如何工作的/做一个例子的替代 API?

4

1 回答 1

0

有谁知道获得中心纬度/经度的方法或如何使 OSM 地图居中?

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

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

您可以通过公式找到矩形的中心

(maximum + minimum) / 2

边界区域应该足够小,以至于在使用纬度和经度时不会产生太多错误。

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

于 2013-04-08T19:07:13.303 回答