gpt4 book ai didi

android - 通过四舍五入坐标矩形缓存覆盖 - 如何?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:31 24 4
gpt4 key购买 nike

我有一张带有叠加层的 map ,我想缓存它 -在用户在 map 上访问过的每个地方(这是一个矩形区域)上 - 我检查我是否有驻留在这个矩形中的叠加层的缓存。

为了改进缓存(所以如果用户以前在同一个矩形上,除了现在他离前一个矩形几米远) - 我想“舍入”坐标。

这样,每次用户在一个矩形中时 - 我检查这个矩形是否与以前缓存的矩形相似,如果是,我就带上缓存的结果。

此外,如果用户缩小并且他的矩形包含在一个更大的(以前缓存的)矩形中 - 那么我也可以使用缓存的矩形。

有什么建议吗?

最佳答案

如果您只是想了解如何对坐标进行分组,请确定您想要的 x 和 y 坐标或纬度和经度坐标之间的最大差异。然后有两种方法可以对它们进行分组。第一种比较容易,但是如果你有很多点,它会很慢。

假设我们有一个名为 cachedPoints 的数据结构,相关点之间的最大距离称为 maxdistance,我们正在尝试检查一个新点以查看它是否接近另一个称为点的点。

for each cachedPoint in cachedPoints
{
if (point.x - cachedPoint.x < maxdistance)
{
if (point.y - cachedPoint.y < maxdistance)
{
cachedPoint.incrementvisits();
}
}
}

另一种方法是使用按x或纬度排序的数据结构,然后搜索以查看在点的maxdistance内是否有x或纬度的缓存点,然后检查y或经度。它会快一点,但它需要某种哈希来实现并增加一堆你可能不需要的复杂性。

希望这就是您要问的。

关于android - 通过四舍五入坐标矩形缓存覆盖 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703977/

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