给定一个 lat/lng,找到 lat/lng 所在的每个圆圈

Given a lat/lng, find every circle that the lat/lng is in

我有一个这样的 geoshape 文件列表:

{
    "location" : {
        "type" : "circle",
        "coordinates" : [-45.0, 45.0],
        "radius" : "8000m"
    }
 }

给定一个 lat/lng,我想找到这个 lat/lng 所在的所有文档。

您需要使用这样的 geo_shape 查询:

{
  "query": {
    "bool": {
      "filter": {
        "geo_shape": {
          "location": {
            "shape": {
              "type": "point",
              "coordinates": [ -77.03653, 38.897676 ]   <-- lon/lat to search
            },
            "relation": "contains"                      <-- use the contains relationship
          }
        }
      }
    }
  }
}

coordinates 参数中确保将经度设置在纬度之前,而不是相反(感谢 GeoJSON)