【问题标题】:Can I alter the order that points in an Maps Overlay are drawn on the Map我可以更改地图叠加层中的点在地图上绘制的顺序吗
【发布时间】:2012-05-24 04:54:42
【问题描述】:

我有一个地图叠加层,其中包含多个点,每个点都有自己的编号标记。这些点按照我希望它们被绘制的顺序在叠加层中(即从标记 0 到 10 - 10 是最新点)。当地图显示时,点似乎是按照纬度增加的顺序绘制的。这意味着在我的情况下,点 7 的标记可能会绘制在点 10 的标记之上。有没有办法控制标记在地图上的布局顺序?

【问题讨论】:

  • 我是否可以建议您回答(从“已更新!我找到它...”开始),将其从问题中删除并将其添加为答案?通过这种方式,人们可以看到问题实际上已经很容易回答,并且还可以分别对问题和答案进行投票。
  • Scott,谢谢,我现在已经这样做了 - 当我最初提出这个问题时,我无法回答自己的问题,因为我没有足够的声誉,然后我就忘记了:(跨度>
  • 酷,感谢您现在就这样做!

标签: android maps overlay points


【解决方案1】:

我找到了 - 我添加了以下代码,它似乎可以工作。这会强制以与它们在叠加层中相同的顺序绘制项目,而不是按照纬度增加的顺序。

有趣的是,如果您选择不同的顺序(例如反转),那么地图将按照您的要求显示,较早的条目会覆盖后面的条目。即如果它们都具有相同的地图坐标,则点 7 将绘制在点 10 的顶部。但是,当您点击显示为第 7 点的内容时,onTap 方法将为您提供第 10 点的索引(可能是因为它在序列中被绘制在第 10 位),这可能会导致您有些困惑。然后由您来记住您要求显示点的顺序并计算出哪个条目实际上位于顶部。

    @Override
protected int getIndexToDraw(int drawingOrder) {
    // Log.d("getIndexToDraw", "drawing order: " + drawingOrder);  //just my debug
    return drawingOrder; // forces order to follow overlay item sequence
    // return super.getIndexToDraw(drawingOrder); // default code - ie Latitude order
}

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多