zoukankan      html  css  js  c++  java
  • [LBS]查询离某个经纬附近的数据SQL语句

    //地球半径,平均半径为6371km
     /**
     *计算某个经纬度的周围某段距离的正方形的四个点
     *
     *@param lon float 经度
     *@param lat float 纬度
     *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米
     *@return array 正方形的四个点的经纬度坐标
     */
    //对于经度和纬度大于或小于该用户1度(111公里)范围内的用户进行距离计算,同时对数据表中的经度和纬度两个列增加了索引来优化where语句执行时的速度.
     
    select * from tablename where lat>34.23414-1 and lat<34.23414+1 and lon>117.180734-1 and lon<117.180734+1 
    order by ACOS(SIN((34.23414 * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS((34.23414 * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) * COS((117.180734 * 3.1415) / 180 - (lon * 3.1415) / 180 ) ) * 6380  desc  limit 10
     
    如果有什么事情让你感到恐惧或者兴奋,那就去做吧!
  • 相关阅读:
    010 排序: 冒泡 选择
    洛谷 P1540 机器翻译
    洛谷 P1011 车站
    周期串
    2019.03.29 大数据图解
    2019.03.29 算法解读
    2019.03.28 博客反省
    2019.03.27 常用的模块
    2019.03.25 git
    2019.03.25 Ajax三级联动
  • 原文地址:https://www.cnblogs.com/yaokoo/p/2945885.html
Copyright © 2011-2022 走看看