Search K
Appearance
👇公众号👇---👇 微信 👇
有缘人请我喝杯咖啡吧
👇 微信 👇---👇支付宝👇
Appearance
TIP
在MySQL中,您可以使用内置的地理空间函数来计算两点之间的距离。首先,您需要确保数据表中有一个地理空间数据类型的列,通常是GEOMETRY或POINT类型。然后,您可以使用ST_Distance_Sphere函数来计算两点之间的距离(以米为单位)。
CREATE FUNCTION `lat_lng_distance` (lat1 FLOAT, lon1 FLOAT, lat2 FLOAT, lon2 FLOAT)
RETURNS FLOAT
DETERMINISTIC
BEGIN
RETURN ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((lat1 * PI() / 180 - lat2 * PI() / 180) / 2), 2)
+ COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180)
* POW(SIN(( lon1 * PI() / 180 - lon2 * PI() / 180 ) / 2),2))),2);
END
-- 根据前端传入经度和维度获取这个距离区间最新的美食信息
-- lgtd:表示经度
-- lttd:表示维度
SELECT
f.id,
f.shop_name,
f.score,
f.Likes,
f.lgtd,
f.lttd,
lat_lng_distance ( 28.063251, 119.181129, f.lttd, f.lgtd ) AS distance,
f.update_time
FROM
food f
WHERE
f.lgtd IS NOT NULL
AND f.lttd IS NOT NULL
ORDER BY
distance
LIMIT 1