嗨朋友我需要这个逻辑
问题定义的帮助:
有4张桌子:
- 项目
- 项目名称
- 项目编号
- 邮政编码
- 小贩
- 供应商 ID
- 供应商名称
- 电话
- 服务区距离
- 供应商服务区
- 供应商 ID
- 服务区邮政编码
- 邮政编码详细信息
- 邮政编码
- 纬度
- 经度
- 每个项目都有一个邮政编码
- 供应商可以有多个服务区邮政编码
当供应商登录时,我将获得供应商服务区域内的所有项目。
例如:如果供应商在他的服务区有两个邮政编码 22032、10031,并且他的服务区距离是 20 英里,那么这些服务区内的所有项目都在 20 英里左右。
我正在计算项目邮政编码和供应商邮政编码之间的距离,并在列中显示最小距离
例如:项目邮政编码 22032 和供应商邮政编码是 22031 和 22040:
22032 到 22031 = 3.01 英里
22032 到 22040 = 7.98 英里
然后距离 = 3.01
问题:现在客户想要按距离排序
我的尝试:
- 我尝试使用 PHP 数组和对象来执行此操作,但使用大数据会减慢进程
- 我试图从MYSQL距离计算haversine公式计算它,但无法弄清楚
- 我试图在单独的表格中映射距离,但邮政编码太多
请提出任何可以花费更少时间的逻辑。