我有这个问题:
select id, post_category_name , title, description,WEIGHT(),
geodist(50.95, 24.69, latitude, longitude) dist
from serv1 where match('@(title,description) searchText ) and dist < 2000000000000;
我的数据库帖子中的有latitude: 50.85
和longitude: 24.69
结果我的距离为893641
,但实际距离为11119.49
米。
我也尝试将输入坐标转换为弧度,但仍然没有正确的距离。
我做错了什么?先感谢您。
答案 0 :(得分:0)
根据您的其他一个问题中的代码,会执行类似
的操作sql_query = select p.id, ... , \
RADIANS(l.Latitude) as latitude, RADIANS(l.Longitude) as longitude FROM ...
使用MySQL函数将存储的degreee值转换为属性的radions。
......
sql_attr_float = latitude
sql_attr_float = longitude
会保持不变。
答案 1 :(得分:0)
尝试
geodist(50.95, 24.69, latitude, longitude, {in=deg}) dist
(注意{in = deg})
它返回的数字接近您预期的数字:
mysql> select geodist(50.95, 24.69, 50.85, 24.69, {in=deg});
+-----------------------------------------------+
| geodist(50.95, 24.69, 50.85, 24.69, {in=deg}) |
+-----------------------------------------------+
| 11124.928711 |
+-----------------------------------------------+
1 row in set (0.00 sec)