【问题标题】:Android MapView: problem with method zoomToSpan for ItemizedOverlayAndroid MapView:ItemizedOverlay 方法 zoomToSpan 的问题
【发布时间】:2011-06-15 07:12:12
【问题描述】:

我正在使用以下代码来缩放以查看 MapView 上的所有点:

mMapController.zoomToSpan(myOverlay.getLatSpanE6(), myOverlay.getLonSpanE6());

它有效,除了它只考虑 points 而不是 overlays 的问题,因此给了我以下结果:

有没有办法解决这个问题?我在想手动添加/减去一些纬度/经度到/从getLatSpanE6()/getLonSpanE6(),但这会很脏,我不知道我应该添加/减去多少。有人有什么想法吗?

谢谢!

【问题讨论】:

    标签: android overlay zooming android-mapview html


    【解决方案1】:

    参考我的回答here

    您唯一需要做的就是考虑叠加项目的高度和宽度。

    即 伪代码:

    projection of (latitude) + width of one overlay 
    
    projection of (longitude) + height of one overlay 
    

    【讨论】:

    • 感谢您的回复,但是如果我使用 getLatSpanE6/getLonSpanE6,我应该在哪里添加宽度和高度?地理位置是从数据库中读取的,我需要使用: new GeoPoint((int)(latitude * 1e6), (int)(longitude * 1e6)) 将其转换为 Google API 接受的位置,是否将它们添加到zoomToSpan(latSpan + 宽度,lonSpan + 高度)?谢谢!
    【解决方案2】:
    mapView.setBuiltInZoomControls(true);
    MapController mapcontroller = mapView.getController();
    mapcontroller.animateTo(gp);
    mapcontroller.setCenter(point)
    mapcontroller.setZoom(9);
    

    如果您希望答案更清晰,请根据您的要求设置给定方法的值,那么首先您应该阅读与 givn 方法相关的 android 谷歌文档,然后您就明白了。我希望你能用它解决你的问题。

    【讨论】:

    • 一开始我不知道这些针点的确切位置,所以我使用 zoomToSpan 将它们全部显示在一个屏幕上,因此我无法确定我应该使用什么“中心”和缩放级别使用。
    • 我看不出这个答案与问题有什么关系
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多