【问题标题】:How to check that no ItemizedOverlay is Taped on the MapView?如何检查 MapView 上是否有 ItemizedOverlay?
【发布时间】:2013-07-16 11:25:38
【问题描述】:

我创建了一个带有 2 个不同叠加层的 MapView。 一个叠加层在地图上显示 POI,第二个叠加层在您单击/选项卡其中一个 POI 时显示“气泡”。

现在我想在第二个叠加层可见且没有点按 POI 时移除它! 我只需要知道如何检查我是只点击地图还是其中一个 POI ??? (也可以点击气泡)。

【问题讨论】:

    标签: android touch overlay android-mapview tap


    【解决方案1】:

    在你的代码中,当你定义你的

        public class MyItemizedOverlay extends ItemizedOverlay<MyObject>
    

    你可以覆盖

        @Override
        protected boolean onTap(final int index) {
            // Called when you tap on an overlay
            return true;
        }
    
        @Override
        public boolean onTap(GeoPoint p, MapView mapView) {
            // Called when you tap somewhere with no overlay
            // So remove the second overlay here
        }
    

    【讨论】:

    • 如果你点击一个兴趣点,两种方法都会被调用!首先是 onTap(point, map) 和第二个 onTap(index) :) 这是我遇到的大问题
    • 是的,没错。但是如果你在protected boolean onTap(final int index) 中添加你的气泡并在public boolean onTap(GeoPoint p, MapView mapView) 中删除它应该没问题。因为它在同一个循环中,所以它不会闪烁。这正是我在我的应用程序中所做的(当点击 POI 时会有一些 POI 和一个气泡。但我使用一个简单的视图而不是另一个叠加层。)。
    猜你喜欢
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多