0

我有 GPS 坐标(经纬度)我想创建组,每个组都将包含相同半径内的坐标,我使用此代码获取 2 点之间的距离:-

float radius = (float) 1000.0;
        float distance = loc.distanceTo(loc2);
        if (distance < radius) 
            Toast.makeText(getApplicationContext(), "inside", Toast.LENGTH_LONG).show();
    }

但是使用此代码,我需要将每个坐标与其余坐标进行比较,以检查哪个坐标最接近,这似乎不够,还有其他方法吗?

提前致谢

4

1 回答 1

0

另一种方法是使用地理空间索引,例如四叉树
在这种情况下,您将首先计算半径内的四边形单元格,然后只考虑该单元格内的点。

但这是一些编程、搜索和理解工作,所以当对所有点的蛮力搜索速度很慢时,请使用这样的索引。

于 2013-07-25T14:07:17.527 回答