gpt4 book ai didi

mysql - 使用Mysql GIS功能计算最近的地方

转载 作者:搜寻专家 更新时间:2023-10-30 23:38:07 25 4
gpt4 key购买 nike

我们有 2 个表存储行程请求,一个是客户的,一个是司机的。我们必须使用 MYSQL 5.7 GIS 功能显示离客户最近的司机和离司机最近的客户。

这两个表都存储了请求的纬度和经度。
因此,如果司机要求出行,我想计算距离,并从客户请求表中向司机显示 10 公里半径内最近的客户及其位置。

我尝试了 st_distance_sphere,它适用于 (Point,Point)。但是如果我传入一个 multipoint 和一个 point 它返回零。

multipoint,point 不应该返回第一位的所有点到第二位的点之间的距离吗?

如果我错了请更正。我尝试的查询如下。

SELECT 
round(
st_distance_sphere(
st_geomfromtext(
'Multipoint(72.87765590000004 17.385044,73.8567436 18.5204303)'
),
st_geomfromtext(
'POINT (73.8567436 18.5204303)'
)
)
) as dist;

最佳答案

它返回两个几何之间最近的距离。在你的多点你有

Multipoint(72.87765590000004 17.385044,73.8567436 18.5204303)

这里的第二组点完全一样

POINT (73.8567436 18.5204303)'

因此距离为 0 是正确的响应。

如果您想找到给定点到多个不同点的距离,您需要将它们作为表中的单独记录并进行如下查询:

SELECT 
round(
st_distance_sphere(some_point-field,
st_geomfromtext(
'POINT (73.8567436 18.5204303)'
)
)
) as dist;

关于mysql - 使用Mysql GIS功能计算最近的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com