У меня есть данные о тысячах полигонов, нарисованных (как регион) на карте Google, и их данные хранятся в mongodb.
Теперь я должен найти погоду, точка находится внутри этого многоугольника или нет.Я успешно добился этого с помощью JavaScript.но теперь я хочу преобразовать свою функцию в агрегатные этапы.Вот мой код js.
function checkpoint(point, vs) {
let x = point[0], y = point[1];
let inside = false;
let j = vs.length - 1;
for (let i = 0; i < vs.length; j = i++) {
let xi = vs[i][0];
let yi = vs[i][1];
let xj = vs[j][0];
let yj = vs[j][1];
let intersect = ((yi > y) != (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
if (intersect) inside = !inside;
}
return inside;
};
Я знаю, что мы можем использовать условие внутри агрегата, но как насчет значения массива?Как мне пройти через каждое из значений массива?внутри агрегата?
вот формат моих данных
{
"_id":"5bc50c0e85da251e84cb8557",
"location":[
[23.586698,71.203369],
[21.378973,70.049805],
[21.225437,72.203125]
],
"name":"zone x",
"detail":"#ff0000",
"__v":0
}
и будет ли нормально / эффективно / быстро использовать агрегат вместо функции js?