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
  • 相关阅读:
    并发编程-process对象的其他属性方法
    Python json格式处理
    msf制作反弹shell
    Windows渗透备忘录
    WPF listbox实现多列显示数据
    Postgresql插入或更新操作upsert
    Windows 10 IoT Core Samples
    物联网平台开源
    实现领域驱动设计
    wpf Visibility 动画
  • 原文地址:https://www.cnblogs.com/huangzhen22/p/11175486.html
Copyright © 2011-2022 走看看