zoukankan      html  css  js  c++  java
  • 周围距离多少米的SQL语句

    
    

    C#版

     public static double GetDistance(double long1, double lat1, double long2, double lat2)
            {
                double a, b, R;
                R = 6378137; //地球半径
                lat1 = lat1 * Math.PI / 180.0;
                lat2 = lat2 * Math.PI / 180.0;
                a = lat1 - lat2;
                b = (long1 - long2) * Math.PI / 180.0;
                double d;
                double sa2, sb2;
                sa2 = Math.Sin(a / 2.0);
                sb2 = Math.Sin(b / 2.0);
                d = 2 * R * Math.Asin(Math.Sqrt(sa2 * sa2 + Math.Cos(lat1) * Math.Cos(lat2) * sb2 * sb2));
                return d;
            }

    sql语句版

    $user_lat='41.749034'; //传过来的纬度
    $user_lng='123.46017';//传过来的经度
    $store_mod=db("store"); //数据库
    $storelist=$store_mod->query("SELECT *,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((".$user_lat."*PI()/180-【store_latitude】*PI()/180)/2),2)+COS(".$user_lat."*PI()/180)*COS(【store_latitude】*PI()/180)*POW(SIN((".$user_lng."*PI()/180-【store_longitude】*PI()/180)/2),2)))*1000) AS distance FROM store HAVING 【搜索条件如 state=1】 distance<【周围距离多少米 如 500ORDER BY distance ASC");
    
    SELECT *,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((22.121700*PI()/180-stationinfo.lat*PI()/180)/2),2)+COS(22.121700*PI()/180)*COS(stationinfo.lat*PI()/180)*
    POW(SIN((99.285103*PI()/180-stationinfo.lng*PI()/180)/2),2)))*1000) AS distance FROM stationinfo  ORDER BY distance ASC
  • 相关阅读:
    SQL Server 和Oracle 12C体系结构图
    SQL Server Latch
    MSSQL SSIS agent job运行出错
    sys.processes spid 和 blocked是同一个 session id
    黑苹果导致Windows时间不对或关机不断电
    MSSQL shrink数据库
    MSSQL 死锁或阻塞检测
    MSSQL不能shrink日志
    tomcat配置https协议
    ELK windows下部署测试
  • 原文地址:https://www.cnblogs.com/huangzhen22/p/11175486.html
Copyright © 2011-2022 走看看