将地理边界框扩展x英里的计算

时间:2018-08-31 18:47:13

标签: elasticsearch geolocation geo

希望有人可以帮助我进行计算。

说我有一个边界框的坐标,例如作为从Google Places API返回的视口,例如

 "viewport" : {
           "northeast" : {
              "lat" : 37.4238253802915,
              "lng" : -122.0829009197085
           },
           "southwest" : {
              "lat" : 37.4211274197085,
              "lng" : -122.0855988802915
           }
        }

然后,我将使用这些结果按地理边界框内的位置从Elasticsearch过滤中返回结果:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/query-dsl-geo-bounding-box-query.html

这很好,但是我想进行一次计算以将此视口增加例如5英里,而返回值则是另一个尺寸增加的边界框。

我想穿过视口的对角线需要每次增加2.5英里,但是我不确定计算方法。

谢谢。

1 个答案:

答案 0 :(得分:1)

因此事实证明,可以使用Vicenty的公式(https://en.wikipedia.org/wiki/Vincenty%27s_formulae#Direct_Problem)来解决。

https://www.npmjs.com/package/geodesy上有兴趣的人的JavaScript实现。

赞美Vicenty。