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

#javascript #express #sequelize.js #latitude-longitude #google-latitude

Вопрос:

Здесь у меня есть широта и долгота магазина и пользователя, я хочу показать свой список магазинов между пользователем и широтой и долготой магазина . как я могу это сделать в sequlize orm

  const latitude = req.query.latitude; // user latitude 
 const longitude = req.query.longitude; // user longitutde 

 const shopLists = await Shop.findAll({
            limit,offset,
            attributes:["latitude","longitude"],
            where:{
                category_id:category_id,
                status:1,
            },
            include :{
                model:Category,attributes:['id','name']
            }
        }); 

Ответ №1:

 const limit;
// what is offset?
const shopLists = await Shop.findAll({
    where: {
        longitude: {
            [Op.ne]: null,
        },
        latitude: {
            [Op.ne]: null,
        },
        [Op.and]: [
            Sequelize.where(
                Sequelize.fn(
                    'ST_Distance',
                    Sequelize.fn('point', Sequelize.col('longitude'), Sequelize.col('latitude')),
                    Sequelize.fn('point', longitude, latitude),
                ),
                '<',
                limit,
            ),
        ],
    },
})

 

Комментарии:

1. смещение братана-это номер страницы ..кстати,это не работает, я передал широту и долготу пользователя, но я могу получить данные, которые он возвращает пустой массив. терминал показывает это ST_Distance(точка(23.7873, 90.3514), точка(23.7873, 90.3514)) РАВНО НУЛЮ ..