По заданному широту / долготу найдите каждый круг, в котором находится широта / долгота.

У меня есть список документов geoshape, как это:

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

Учитывая лат / лнг, я хочу найти все документы, в которых находится этот лат / лнг.

1 ответ

Решение

Вам нужно использовать 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)

Другие вопросы по тегам