更新时间:2022-02-04 23:13:16
以下语句将在您的经纬度范围内查找Flats
,在负载中包含一个名为distance
的字段,并按distance
排序。
const myDistance = 10000; // e.g. 10 kilometres
Flats.findAll({
attributes: {
include: [
[
Sequelize.fn(
'ST_Distance',
Sequelize.col('location'),
Sequelize.fn('ST_MakePoint', longitude, latitude)
),
'distance'
]
]
},
where: Sequelize.where(
Sequelize.fn(
'ST_DWithin',
Sequelize.col('location'),
Sequelize.fn('ST_MakePoint', longitude, latitude),
myDistance
),
true
),
order: Sequelize.literal('distance ASC')
});
请记住:我不知道您使用的是哪个SRID。因此,我使用米来测量距离,尽管您可能需要在代码中将米转换为半径。