как преобразовать JS-функцию в агрегатные этапы mongodb - PullRequest
0 голосов
/ 15 октября 2018

У меня есть данные о тысячах полигонов, нарисованных (как регион) на карте 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?

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