【问题标题】:OSMdroid: zoomToBoundingBox zooms to wrong bounding boxOSMdroid:zoomToBoundingBox 缩放到错误的边界框
【发布时间】:2018-11-05 04:38:19
【问题描述】:

问题:

我有一个边界框 {N:53.2219112;电子:-6.1409208; S:5​​3.1953286; W:-6.1784236} 我想重点关注的。

我在那个边界框上调用 MapView.zoomToBoundingBox 并且由于某种原因它在 {N:54.9918; 上缩放/居中。电子:-8.3993; S:5​​4.9651; W:-8.4716}(粗略地说,我通过查看和 OpenStreetMap.org 上的显示区域估计了这一点)。

奇怪的是,当我打电话给MapView.getBoundingBox 时,我得到了 {N:78.34941069014627;电子:28.125; S:7.01366792756663; W:-50.625},这与任何事情都没有关系。

考虑:

1)我的 MapView 只占据屏幕的一部分 - 只是顶部,如下所示,所以可能没有正确计算正确的视图尺寸?

2)当我在boundingBox.getCenterWithDateLine() 上手动缩放和居中时,视图以边界框的中心为中心——所以输入的边界框是正确的。

3) 我正在使用我自己的扩展 MapView 的“ExtendedMapView”类,作为将 MapView 的所有功能保存在一个地方的一种方式,我无法想象这是导致问题的原因,但值得注意。

4) 我在 onLayout 中调用 zoomToBoundingBox,如该线程中所建议:https://github.com/osmdroid/osmdroid/issues/236

5) 我正在使用 OSMdroid 6.0.1

代码:

在 ExtendedMapView 中调用:

 @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);

         if(boundingBox != null){
             zoomToBoundingBox(boundingBox, true);
             //output: N:53.2219112; E:-6.1409208; S:53.1953286; W:-6.1784236
             Log.d(Constants.SkiCompanionDebug, "Required BB: "+boundingBox.toString());

             //output: N:78.34941069014627; E:28.125; S:7.01366792756663; W:-50.625
             Log.d(Constants.SkiCompanionDebug, "Actual BB: "+getBoundingBox().toString());
         }
    }

【问题讨论】:

    标签: java android zooming osmdroid bounding-box


    【解决方案1】:

    经过几天的闲逛,我找到了解决方案。当您将 animate 设置为 TRUE 时,zoomToBoundingBox 存在错误。我通过将 animate 设置为 FALSE 并随后调用 invalidate() 解决了这个问题。

    @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            super.onLayout(changed, l, t, r, b);
    
             if(boundingBox != null){
                 zoomToBoundingBox(boundingBox, false);
                 invalidate();
             }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      • 2017-12-30
      • 2018-04-26
      相关资源
      最近更新 更多