【问题标题】:OsmDroid load Marker after scrollOsmDroid 滚动后加载标记
【发布时间】:2016-09-03 11:17:37
【问题描述】:

我想在滚动后加载标记。在谷歌地图中我使用 OnCameraChange,在 OsmDroid 中我使用 OnScroll,但在我移动地图之前总是被调用。如何检测滚动何时以 OnCameraChange 结束?

【问题讨论】:

    标签: android osmdroid


    【解决方案1】:

    如果你的意思是after scroll

    • 地图的当前可见部分已更改
    • 包含动画的滚动/缩放已完成
    • 在过去 200 毫秒内没有滚动/缩放

    您可以尝试添加 DelayedMapListener 作为地图侦听器,在最后一次滚动/缩放后 200 毫秒触发

    /** Fire if there is more than 200 millisecs no zoom/scroll update markers */
    protected static final int DEFAULT_INACTIVITY_DELAY_IN_MILLISECS = 200;
    
        // If there is more than 200 millisecs no zoom/scroll update markers
        mMapView.setMapListener(new DelayedMapListener(new MapListener() {
            @Override
            public boolean onScroll(ScrollEvent event) {
                reloadMarker();
                return false;
            }
    
            @Override
            public boolean onZoom(ZoomEvent event) {
                reloadMarker();
                return false;
            }
        }, DEFAULT_INACTIVITY_DELAY_IN_MILLISECS));
    

    【讨论】:

      【解决方案2】:

      如果我的理解是正确的,osmdroid 本身并不支持它(基本上是 onScrollEnd)。那正确吗?你想在滚动结束时发生一个事件吗?

      On Scroll 仅在地图处于平移过程中时触发。如果您遇到不同的行为,则可能是错误。事实上,不久前也有类似的报道。它应该在 osmdroid 5.2 或更新版本中修复

      要在滚动完成后触发,我建议跟踪最后一个 onScroll 事件的时间,然后在后台线程中定期检查最后一个事件的时间戳。

      另一个选项是扩展org.osmdroid.views.overlay.DefaultOverlayManager 并覆盖您想要的任何按键或触摸事件。

      然后,您可以使用此方法将自定义覆盖管理器附加到地图视图 mapView.setOverlayManager(yourManager);

      【讨论】:

        【解决方案3】:
        OSMmap.setMapListener(new DelayedMapListener(new MapListener() {
        
                public boolean onZoom(final ZoomEvent e) {
                    reloadMarker();
                    return true;
                }
        
                public boolean onScroll(final ScrollEvent e) {
                reloadMarker();
                return true;
               }
        }, 1000 ));
        

        【讨论】:

          猜你喜欢
          • 2019-09-06
          • 2017-04-26
          • 2014-07-13
          • 1970-01-01
          • 2017-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-23
          相关资源
          最近更新 更多