Конвертировать массив координат листовки geojsonFeature из десятичных в целочисленные значения - PullRequest
0 голосов
/ 02 марта 2020

Мне нужно преобразовать / отобразить координаты листовки из десятичных в целочисленные значения в нескольких объектах, чтобы использовать их в дерне js метод:

https://www.npmjs.com/package/@turf / boolean-point-in- полигон

coord = geojsonFeature.geometry.coordinates:

{type: "D", designator: "EPD53A", availabilities: Array(1), info: Array(2), geometry: {…}}
{type: "TRA", designator: "EPTR105", availabilities: Array(1), info: Array(2), geometry: {…}}
{type: "D", designator: "UMD192", availabilities: Array(1), info: Array(2), geometry: {…}}
(...)

geometry:
  type: "Polygon"
    coordinates: Array(1)
      0: Array(8):
        0: (2) [16.845, 54.587777778]
        1: (2) [16.647777778, 54.515]
        2: (2) [16.545277778, 54.543611111]
        (...)

Есть ли простой способ сделать это? (angular / typcript)

Я пытаюсь проверить, лежит ли нажатая точка на двух или более полигонах слоя. Мне действительно нужно преобразовать эти значения в целое число?

    var pt2 = turf.point([22.65380859375, 49.710272582105695]);
    var multiPoly = turf.multiPolygon([[[
        [22.828611111111112, 49.68472222222222],
        [23.065833333333334, 49.9],
        [23.20861111111111, 49.843333333333334],
        [22.98611111111111, 49.650555555555556],
        [22.828611111111112, 49.68472222222222],
        [22.828611111111112, 49.68472222222222],
        [22.828611111111112, 49.68472222222222]
    ]]]);
    console.log("test-turf",turf.booleanPointInPolygon(pt2, multiPoly));

Возвращает false

1 Ответ

1 голос
/ 02 марта 2020

Все методы Turf JS принимают (правильно сформированные) Geo JSON в качестве входных данных. Нет необходимости использовать целочисленные значения для координат.

Возвращает ложь

Ваш вызов boolanPointInPolygon возвращает ложь, потому что эта точка находится за пределами этого многоугольника:

Map with point and polygon plotted

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...