MySQL中的距离函数使用实例(mysql距离函数)

MySQL中的距离函数是用来计算两个坐标(经纬度)之间的距离。它可以用来实现基于地理位置的查询,如搜索附近的餐厅、购物中心等。

MySQL中可以通过 ST_distance() 函数来计算距离,它接受四个参数:第一个参数是起始坐标,第二个参数是结束坐标,第三个参数是 Coordinate_system_id ,第四个参数是 Output_distance_uom_id 。

比如,我们想计算以下两个坐标之间的距离(经度,纬度):

$coord1 = (43.0667, -89.4000)

$coord2 = (43.1167, -89.4000)

它的函数调用如下:

SELECT ST_distance(GeomFromText(‘POINT(43.0667 -89.4000)’), GeomFromText(‘POINT(43.1167 -89.4000)’), 4326 , 1111)

第一个参数 GeomFromText(‘POINT(43.0667 -89.4000)’ ) 是表示 coord1 坐标的参数,而第二个参数 GeomFromText(‘POINT(43.1167 -89.4000)’) 是表示 coord2 坐标的参数。4326 是 Coordinate_system_id, 1111 是 Output_distance_uom_id 。

结果是: 0.540695461046057

距离函数也可以用来找出离某个给定坐标最近的位置:

SELECT

p.*,

ST_distance(GeomFromText(‘POINT(43.0667 -89.4000)’),position_coord)

AS distance

FROM positions p

ORDER BY distance

LIMIT 1

此查询会从 positions 表中查询出和 coord1 最近的位置,并计算出两个坐标的距离。

距离函数非常强大,它可以用来实现按照地理位置来查询数据,我们可以利用它来查询附近的餐厅、购物中心等。


数据运维技术 » MySQL中的距离函数使用实例(mysql距离函数)