且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

按距点的距离排序的序列化邮政编码(&A)

更新时间: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。因此,我使用米来测量距离,尽管您可能需要在代码中将米转换为半径。