Turf booleanPointInPolygon всегда возвращает false - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу проверить, находится ли точка в многоугольнике:

if (turf.booleanPointInPolygon(pt, poly_coordinates)) {
    console.log("INSIDE");
} else {
    console.log("OUTSIDE");
}

JSON .stringify (console.log (pt)) отображает:

{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[2.1362996,41.391026000000004]}}

JSON .stringify (console.log (poly_coordinates)) отображает:

[[[2.1666008868967594,41.420742231455876],[2.1423966327457435,41.39486355482066],[2.159906093195218,41.38185595077573],[2.1666008868967594,41.420742231455876]]]

ПРИМЕЧАНИЕ. Все в формате широты и долготы.

Почему booleanPointInPolygon возвращает false ? Этот конкретный случай является лишь примером и примером многоугольника, который может находиться за пределами многоугольника. Однако, не имеет значения, содержит ли полигон весь мир, booleanPointInPolygon по-прежнему возвращает false для любой точки.

1 Ответ

0 голосов
/ 26 апреля 2020

Если это ваш код, то проблема в том, что poly_coordinates - это не многоугольник, а просто его часть с координатами.

У вас должно быть что-то вроде:

const poly = { type: 'Polygon', coordinates: poly_coordinates }
turf.booleanPointInPolygon(pt, poly)
...