如何解决根据坐标和半径查找可用服务点 (Ngos) 的存储过程
在我的项目中,我将 rails 6 与 postgresql 一起使用,并且有以下表格
请求起始地址(pickup point)距离所有NGOs 10.84km,起始地址(pickup point)和到达地址(drop off point)相差3.91km 每个NGO都有pickup_radius_limit和drop_off_radius_limit。非政府组织可以接受请求,如果。
- 请求的起始地址和 Ngo 地址之间的距离
- 请求的起始地址和请求的到达地址之间的距离
- Ngo 的状态应该是活跃的。
我不擅长 sql 我需要一个存储过程来返回上面例子中所有这些非政府组织的 id 我应该只得到 ngo_id: 1。 我们可以通过以下查询找到以公里为单位的两点之间的距离。
select SQRT(POW(69.1 * (LATITUDE1::float - LATITUDE2::float),2) + POW(69.1 * (LONGITUDE2::float - LONGITUDE1::float) * COS(LATITUDE1::float / 57.3),2))*1.60934 as distance
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。