mysql根据经纬度计算距离

  • 一、使用地理空间函数ST_DISTANCE:MySQL提供了一组地理空间函数,可以更方便地处理地理数据。使用这些函数,你可以计算点之间的距离、获取最近的点等等。下面是一个示例查询,展示如何使用地理空间函数计算经纬度距离单位(百千米):

  • 代码示例:
  • -- 单位百公里
    SELECT
        id,
        latitude,
        longitude,
            ST_DISTANCE(
            POINT(target_longitude, target_latitude),
            POINT(longitude, latitude)
        ) AS distance
    FROM
        your_table 
    ORDER BY
            distance;
  • 二、使用地理空间函数ST_DISTANCE_SPHERE单位(米)。

  • 代码示例:

    -- 单位米
    SELECT
        id,
        latitude,
        longitude,
            ST_DISTANCE_SPHERE(
            POINT(target_longitude, target_latitude),
            POINT(longitude, latitude)
        ) AS distance
    FROM
        your_table 
    ORDER BY
            distance;
  • 三、如果需要保留小数可以使用ROUND函数round(x,n) -- 四舍五入去整,n为保留几位小数。

  • 代码示例:

    -- 计算两个经纬度之间的距离 单位米
    SELECT
    	id,
    	longitude,
    	latitude,
    	target_longitude,
    	target_latitude,ROUND(ST_DISTANCE_SPHERE (
    		POINT ( longitude, latitude ),
    	POINT ( target_longitude, target_latitude )) ,2)
    	AS distance 
    FROM
    	your_table 
    ORDER BY
    	distance;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值