如何计算纬度和经度指定的两点之间的距离?
为了澄清,我想要以公里为单位的距离; 这些要点使用WGS84系统,我想了解可用方法的相对准确性.
假设我有一个像这样的2列表:
| user_id | int(11) | NO | UNI | NULL | |
| utm | point | NO | MUL | NULL | |
Run Code Online (Sandbox Code Playgroud)
如您所见,它非常简单.utm是Point数据类型.我这样插入:
INSERT INTO mytable(user_id, utm) VALUES(1, PointFromWKB(point(50, 50)));
Run Code Online (Sandbox Code Playgroud)
然后,我创建一个Spatial索引.
ALTER TABLE mytable ...add spatial index on(utm) or something. (forgot)
Run Code Online (Sandbox Code Playgroud)
好吧,一切都很好.现在,我想选择*距离<99999. 但它不起作用!
//This is supposed to select all where the distance is less than 99999999.
set @mypoint = PointFromWKB(point(20,20))
select * from mytable where GLength(LineString(utm, @mypoint)) < 9999999;
Empty set (0.00 sec)
select …Run Code Online (Sandbox Code Playgroud)