php - 按关系距离排列的地理空间顺序
问题描述
假设我有一个世界上所有城市的数据库,数据库中有纬度点字段,所有国家都有纬度。现在我有波兰和美国“活跃”(只查询这个国家的那些城市)。我有一个用户国家设置为波兰。我正在搜索“战争”,现在我在波兰有华沙,在美国有华沙,但我想按照从设置给用户的国家开始的国家距离来订购它。所以在这种情况下,首先是波兰的华沙,然后是美国的华沙。如果西班牙有“华沙”城市,则应订购:华沙(波兰)->华沙(西班牙)->华沙(美国)。
我使用 Grimzy\LaravelMysqlSpatial 包来处理这些距离操作。
$places = Place::active()->where(function ($query) use ($request) {
$query->where('name', 'like', $request->q . '%')
->orWhere('ascii_name', 'like', $request->q . '%');
})->limit(10)->get();
“地方”和“国家”的关系是:
public function country()
{
return $this->belongsTo(Country::class);
}
所以我需要得到从波兰到其他国家的距离,并按这个值排序结果的地方。我会很感激你的帮助:)
解决方案
推荐阅读
- wpf - 将 DataContext 索引绑定到滑块控件值
- android - 生成签名的 apk/应用程序包选项不起作用
- node.js - 使用 Winston 向远程服务器发送传输时出现问题
- java - Spring boot @Value 注释返回 null
- c++ - glUniform4fv 导致 GL_INVALID_OPERATION
- android - 广播接收器的 Android java->kotlin 转换失败
- python - 如何定期运行连接到互联网的 Python 代码
- torch - 梯度流在组合模型上停止
- python - 尝试使用 .replace 和 Python 编辑字符串
- augmented-reality - 如何使用 ARcore 的 Augmented Faces 将 3D 模型绑定到面部的特定点