Моя цель - построить turf.js
мультиполигон.Этот вид жесткого кодирования работает нормально:
const searchWithin = turf.multiPolygon(
[
[[
[-0.607051, 44.840753],
[-0.543708, 44.832962],
[-0.52225, 44.820544],
[-0.566367, 44.808853],
[-0.586367, 44.788853],
[-0.607051, 44.840753]
]],
[[
[5.39014, 43.279295],
[5.393069, 43.279249],
[5.391814, 43.278421],
[5.390709, 43.278749],
[5.3909, 43.2785],
[5.39014, 43.279295]
]]
]);
Как видите, перед получением массивов координат есть 3 уровня скобок.Исходя из базы данных, я получаю:
[
[
[-0.607051, 44.840753],
[-0.543708, 44.832962],
[-0.52225, 44.820544],
[-0.566367, 44.808853],
[-0.586367, 44.788853],
[-0.607051, 44.840753]
],
[
[5.39014, 43.279295],
[5.393069, 43.279249],
[5.391814, 43.278421],
[5.390709, 43.278749],
[5.3909, 43.2785],
[5.39014, 43.279295]
]
]
Чтобы получить данные из базы данных:
.subscribe((response) => {
this.locations = response;
this.polygonsArray.push(this.locations);
this.locations.forEach(element => {
this.polygons.push(element.geoDefinition.features['0'].geometry.coordinates);
с полигонами, объявленными как:
polygons: number[][][] = [];
Я пытался:
this.polygons.push('['+element.geoDefinition.features['0'].geometry.coordinates)+']';
но координаты - это числа, поэтому я не могу объединить их.
Как можно получить эту структуру с 3 квадратными скобками, пожалуйста?Любая помощь будет очень полезна.
Заранее благодарю за помощь.