Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 检查半径内城市的算法是否正常工作_Algorithm_Latitude Longitude - Fatal编程技术网

Algorithm 检查半径内城市的算法是否正常工作

Algorithm 检查半径内城市的算法是否正常工作,algorithm,latitude-longitude,Algorithm,Latitude Longitude,我有一个算法,可以检查我选择的城市周围50公里以内的城市。它使用纬度和经度,但我不知道它是否正确地检查了城市,因为我有一个数据库,其中有许多来自澳大利亚的城市及其纬度和经度,我不知道我的代码是否正确。我做了很多测试,但速度很慢,我不知道是否足够准确 所以我在问:有没有办法检查一下,比如说邮政编码为2000的澳大利亚悉尼有50个半径为50公里的城市作为邻居。有什么网站吗?有什么吗?生成具有已知模式的人工数据集。比如说 邮政编码为2000的城市,50公里以内50个城市,半径50公里以外50个城市

我有一个算法,可以检查我选择的城市周围50公里以内的城市。它使用纬度和经度,但我不知道它是否正确地检查了城市,因为我有一个数据库,其中有许多来自澳大利亚的城市及其纬度和经度,我不知道我的代码是否正确。我做了很多测试,但速度很慢,我不知道是否足够准确


所以我在问:有没有办法检查一下,比如说邮政编码为2000的澳大利亚悉尼有50个半径为50公里的城市作为邻居。有什么网站吗?有什么吗?

生成具有已知模式的人工数据集。比如说

  • 邮政编码为2000的城市,50公里以内50个城市,半径50公里以外50个城市
  • 在一条直线上创建20个城市,所有城市与直接邻居的距离均为1公里。你可以把这条线放在纬度和纵向,甚至可能是倾斜的
  • 城市网格,以便计算城市数量
    • 这很容易检查:

      通过距离计算,计算算法检查城市

      if(距离(lat1、lon1、lat2、lon2)
      然后你只需要测试你的距离计算方法是否有效

      可能性:
      测试用例:
      1) 两个纬度点之间的距离:从google earth获取,并与它们的值进行比较,或者使用web服务计算两个点之间的距离


      2) 测试重叠基准极限(经度-180/180):一点位于极限西面:经度1-179.0,另一点位于东面:经度=0.0001(应给出约111.0km),两者的纬度均为0

      本文将为您提供各种可能性,包括代码片段和算法。现在很多数据库都有专门的函数/运算符来处理这样的几何查询。告诉我们你的算法是如何工作的好吗?我认为,
      a^2+b^2=c^2
      ,可能会考虑地球的曲率,例如在非欧几里得几何中,这有点复杂?我支持tobias_k-请提供一些关于您的特定算法的详细信息。
      if (distance(lat1,lon1,lat2,lon2) < radius) {
        // isInside..
      }