pro*_*mer 8 android overlay coordinate-systems android-mapview
我有一个地图,我想要缓存 - 在用户在地图上访问的每个地方(这是一个矩形区域) - 我检查我是否有一个驻留在这个矩形的叠加缓存.
为了改善缓存(所以如果用户以前在同一个矩形上,除了现在他距离前一个矩形几米) - 我想"圆"坐标.
这样,每次用户处于矩形时 - 我检查这个矩形是否与之前缓存的矩形类似,如果是,我带来缓存的结果.
此外,如果用户缩小并且他的矩形包含在更大的(先前缓存的)矩形中 - 那么我也可以使用缓存的矩形.
有什么建议 ?
如果您只是想了解如何对坐标进行分组,请确定您想要的 x 和 y 坐标或纬度和经度之间的最大差异。然后您可以通过两种方法对它们进行分组。第一个比较容易,但是如果你有很多点,就会很慢。
假设我们有一个名为 cachedPoints 的数据结构,相关点之间的最大距离称为 maxdistance,以及一个我们试图检查它是否接近另一个称为点的新点。
for each cachedPoint in cachedPoints
{
if (point.x - cachedPoint.x < maxdistance)
{
if (point.y - cachedPoint.y < maxdistance)
{
cachedPoint.incrementvisits();
}
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用按x或纬度排序的数据结构,然后搜索是否存在x或纬度在点的maxdistance内的缓存点,然后检查y或经度。它会快一点,但需要某种哈希来实现,并增加了一些您可能不需要的复杂性。
希望这就是你所问的。
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |