• mysql通过经纬度查询400公里范围内的小区


    mysql距离计算,单位m,以及排序
    lng 经度 lat 纬度
    一般地图上显示的坐标顺序为,纬度在前(范围-90~90),经度在后(范围-180~180)
    传入参数 纬度 40.0497810000 经度 116.3424590000
    /*传入的参数为  纬度 纬度 经度 ASC升序由近至远 DESC 降序 由远到近 */

    SELECT
    id,
    name,
    address,
    ROUND(
    6378.138 * 2 * ASIN(
    SQRT(
    POW(
    SIN(
    (
    40.0497810000 * PI() / 180 - lat * PI() / 180
    ) / 2
    ),
    2
    ) + COS(40.0497810000 * PI() / 180) * COS(lat * PI() / 180) * POW(
    SIN(
    (
    116.3424590000 * PI() / 180 - lng * PI() / 180
    ) / 2
    ),
    2
    )
    )
    ) * 1000
    ) AS 距离
    FROM
    oc_district
    HAVING
    距离 < 400000
    ORDER BY
    距离 ASC

    至此,我们就能清楚的查看到纬度 40.0497810000 经度 116.3424590000 距离    小区表中的每个小区到传入地点的距离(单位 m)

    方法二:通过MySQL的POIN方法

    st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。

    sql:
    SELECT *, (st_distance (point (lon,lat),point (116.3424590000,40.0497810000))*111195/1000 )as juli FROM customer ORDER BY juli ASC
  • 相关阅读:
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    助教学期总结
    第十六周助教总结
    C语言I博客作业11
    第十五周助教总结
    C语言I博客作业10
    第十四周助教总结
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/Soy-technology/p/10979817.html
Copyright © 2020-2023  润新知