Я проверяю, находится ли географическая точка внутри многоугольника, используя elasti c. Я могу заставить его работать просто для «Полигона», однако «Мультиполигон» не работает.
Это работает (Полигон):
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_polygon" : {
"geo" : {
"points" : [
[-131.602021, 55.117982],
[-131.569159, 55.28229],
[-131.355558, 55.183705],
[-131.38842, 55.01392],
[-131.645836, 55.035827],
[-131.602021, 55.117982]
]
}
}
}
}
}
}
Это не так (многогранно):
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_polygon" : {
"geo" : {
"points" : [
[
[-131.602021, 55.117982],
[-131.569159, 55.28229],
[-131.355558, 55.183705],
[-131.38842, 55.01392],
[-131.645836, 55.035827],
[-131.602021, 55.117982]
],
[
[-131.832052, 55.42469],
[-131.645836, 55.304197],
[-131.749898, 55.128935],
[-131.832052, 55.189182],
[-131.832052, 55.42469]
]
]
}
}
}
}
}
}
Насколько я понимаю, мне может потребоваться выполнить какой-либо логический запрос для каждого отдельных полигонов - однако, любое руководство было бы замечательно.