如何解决未处理的拒绝SequelizeDatabaseError:FUNCTION ST_DistanceSphere
我有一个路由器,该路由器获取latitude
和longitude
作为参数。我需要在“位置”表中找出所提供的经纬度与所有位置之间的距离。
我该怎么做呢? Sequelize
是否已经为我提供了确定距离的功能,还是需要编写外部查询来查找距离?
我该怎么做呢?
为了查找距离小于50英里的用户,我使用了以下方法:
但出现错误。请给我建议。
var attributes = ["name","id"];
var lat = "28.459497";
var lng = "77.026634";
var location = sequelize.literal(`ST_GeomFromText('POINT(${lng} ${lat})')`);
var distance = sequelize.fn('ST_DistanceSphere',sequelize.literal('location'),location);
attributes.push([distance,'distance']);
Users.findAll({
attributes: attributes,order: distance,where: sequelize.where(distance,{
[Op.lte]: 10000
})
})
.then(function(instance) {
return res.json(200,instance);
});
但是出现错误:
Unhandled rejection SequelizeDatabaseError: FUNCTION databsename.ST_DistanceSphere
does not exist
at Query.formatError (C:\mynode\gta\ka-api\node_modules\sequelize\lib\dialec
ts\mysql\query.js:244:16);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。