gpt4 book ai didi

geometry - 如何最好地在一组纬度/经度坐标上执行走廊范围搜索

转载 作者:行者123 更新时间:2023-12-01 01:38:14 27 4
gpt4 key购买 nike

找到坐标集的最佳方法是什么,例如
给定指定宽度,大约 5,00,位于点路径内。
例如,一架飞机跟随几个航路点。

是否有一种好方法也可以按照与路线相同的顺序对它们进行排序。

计算速度比准确性更重要,因为我在看
制作建议 list 。

从我所看到的,我认为这并不简单,问题是
有点宽泛,但欢迎任何建议/指示,例如:

  • 存储纬度/经度或使用球面坐标的最佳方式
  • 在坐标集中有额外的聚类信息
  • 可以使用某种变换来简化范围检查
  • 订购积分的最佳方式是什么

  • 这是比对几个等距进行圆形/方形检查更好的方法吗?
    路径上的点。

    最佳答案

    您可以进行许多优化:

  • 将您的点分成固定大小的图块,这样您就不必检查每个点(首先确定您所在的图块,这样您就可以跳过其他图块中的所有点)。
  • 在计算到每个点的距离时,您通常会使用毕达哥拉斯来获得距离。但是如果你只想知道哪个点最近,你可以省略平方根,这是一个昂贵的操作(见下面的示例代码)。
  • 使用一些平面投影而不是使用纬度/经度,或者通过假设地球是平的来近似计算出的距离。对于小距离(直到几公里),这通常足够准确,并且比使用 WGS84 坐标更快更容易。
    不过,您可能需要转换所有坐标,但这种预先计算将在运行时节省大量 CPU 周期。

  • ——
     // delphi code that would iterate through a set of points to find the index
    // of the point that is the closest to the provided x/y
    function TMatcher.GetIndexOfClosest(X,Y:Double):Integer;
    var
    i : Integer;
    Closest:Double;
    Distance:Double;
    begin
    Closest:= MaxInt;
    Result := -1;
    for i:=0 to high(Points) do
    begin
    // taking the square root is not needed here!
    Distance :=Sqr(X-Points[I].X)+Sqr(Y-Points[I].Y);

    if Distance < Closest then
    begin
    Closest := Distance;
    Result := i;
    end;
    end;
    end;

    关于geometry - 如何最好地在一组纬度/经度坐标上执行走廊范围搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445109/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com