项目上需要根据当前的经纬度查询指定范围内离这个坐标最近的对象。

主要是思路。请大家指正

public static void CheckGps()
{
  
        double temp = Common.Jl;   //Common.Jl  指定的查找距离。单位(米)
        Common.Test dd = new Common.Test();   //查询的对象
        bool find = false;
        //MessageBox.Show("Test");

foreach (Common.Test test in Common.testList)
        {
            double jl = GetDistance(test.lat, test.lon, Common.gpsinfo.latitude, Common.gpsinfo.longitude);
            if (Common.Jl > jl)     //如果在查询范围内
            {
                if (jl < temp)      //如果比当前最近坐标还近
                {
                    find = true;
                    temp = jl;          //当前为最近距离的对象
                    dd = test;
                }
            }
        }
        if (find)
        {
            MessageBox.Show(dd.name + "距离:" + temp.ToString());
            Common.xl = false;
        }
}

public static double rad(double d)
{
    return d * Math.PI / 180.0;
}
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
    double EARTH_RADIUS = 6378.137;
    double radLat1 = rad(lat1);
    double radLat2 = rad(lat2);
    double a = radLat1 - radLat2;
    double b = rad(lng1) - rad(lng2);
    double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) +
     Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2)));
    s = s * EARTH_RADIUS;
    s = Math.Round(s * 10000) / 10000;
    s = s * 1000;
    return s;
}

转载于:https://www.cnblogs.com/caojinqin/archive/2008/12/24/1361404.html

根据GPS经纬度查找指定范围内的对象相关推荐

  1. 根据经纬度计算指定范围内或者附近的人(java)

    文章目录 根据经纬度计算指定范围内或者附近的人(java) 前言 实现 根据经纬度计算指定范围内或者附近的人(java) 前言 最近项目中有一个需求,就是在地图中随便标一个点位,然后根据这个点位显示出 ...

  2. 用postgresql(postgis) 查找指定范围内的兴趣点

    在地图中一个任意经,纬度下点击.想要找到以这个点为中心指定半径下包含多少个兴趣点. 查看postgis手册找到了这么一个函数(ST_Distance(geometry g1, geometry g2) ...

  3. linux查找某时间段文件夹,shell查找指定时间段内的文件

    #!/bin/bash #20170905 输入参数格式 echo "显示"$1"的备份文件" date_0=$1 date_1=`expr $date_0 + ...

  4. linux shell find命令 查找指定时间范围内的文件

    例如查找`2013-08-08`到`2013-09-01`号之间的文件,使用如下命令即可: find /log/ -name 'production.log-2013*' -newermt '2013 ...

  5. linux查找特定日期之后的文件,Linux Find命令查找指定时间范围内的文件的例子

    例如查找`2013-08-08`到`2013-09-01`号之间的文件,使用如下命令即可: 复制代码 代码如下: find /log/ -name 'production.log-2013*' -ne ...

  6. linux 指定范围内查找文件,Linux Find命令查找指定时间范围内的文件的例子

    例如查找`2013-08-08`到`2013-09-01`号之间的文件,使用如下命令即可: 复制代码 代码如下: find /log/ -name 'production.log-2013*' -ne ...

  7. JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

    Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的ses ...

  8. JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用...

    Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...

  9. linux中使用egrep取值ip地址,egrep命令_Linux egrep 命令用法详解:在文件内查找指定的字符串...

    egrep命令用于在文件内查找指定的字符串.egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法.egrep是用extended regu ...

最新文章

  1. 【SSM框架系列】SpringMVC的文件上传、拦截器及异常处理
  2. NYOJ 93 汉诺塔 (数学)
  3. 《零基础看得懂的C语言入门教程 》——(十一)C语言自定义函数真的很简单
  4. Python3 语法
  5. 可以获取get post url 传递参数的统一方法
  6. linux改ip之后恢复出厂设置密码,Linux忘记密码及修改IP地址解决方案
  7. 从文档流角度理解浏览器页面渲染引擎对元素定位的解析
  8. 瑞幸咖啡 CEO 和 COO 被暂停职务;快手起诉抖音索赔 500 万元;Wine 5.8 发布 | 极客头条...
  9. laravel leftjoin 右侧取最新一条_高铁规划:湖南至广西将增添一条高铁,填补中西部地区铁路网空白...
  10. jQuery 3 有哪些新东西
  11. delphi7 增加管理员权限_EHR系统的权限设计
  12. OpenCV-图像处理(28、轮廓发现(find contour in your image))
  13. 【Java】Jsoup爬虫快速入门案例
  14. 华为人才选拔的管理实践
  15. 手把手教你制作gif动图,一分钟轻松学会
  16. shell win10 改成cmd_Win10小技巧:如何将在此处打开命令改为CMD或Powershell?
  17. Windows 11和Windows 2022 TLS/SSL(Schannel SSP)的加密套件
  18. 【STM32】HAL库 ——DAC
  19. linux双显卡配置_Linux系统怎么配置双显卡
  20. 使用uploadify进行上传

热门文章

  1. 高速串行总线设计基础(八)揭秘SERDES高速面纱之CML电平标准与预加重技术
  2. 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式
  3. Servlet - HTTP超文本传输协议
  4. 【学习摘录】推荐算法
  5. 仓库管理系统gitlab
  6. shell脚本替换文件中字符
  7. NodeJs教程(介绍总结!)终于在网上找到一个靠谱点的了T_T
  8. 趋势科技4月移动client病毒报告
  9. CentOS4 可用镜像及更新方式
  10. 赫夫曼树建立c语言源程序编译结果详细解释,哈夫曼树的建立与实现最终版(备份存档)...