我给了2个GeoPoints,可以在地图上用标记显示它们。
如何获得MapController的最佳缩放级别,以便聚焦两个点的中间,同时又将它们放在地图上。
整个事情应该在不同的屏幕分辨率下工作。
最佳答案
您可以使用MapView的MapController进行此操作。您可以使用MapView.getController()获得MapController,然后可以尝试使用MapController.zoomToSpan()设置正确的缩放比例。我也倾向于使用ItemizedOverlay的getLatSpanE6()和getLonSpanE6()来简化此过程。一个例子:
MapView map = (MapView) findViewById(R.id.Map);
MapController mc = map.getController();
mc.zoomToSpan(overlay.getLatSpanE6(), overlay.getLonSpanE6());
重要的是要注意他们的警告:
因为变焦只能实现
离散级别,并且因为
地图的宽高比可能不匹配
给定的比率,质量
适合的可能有所不同。我们唯一的事情
保证在变焦之后
新纬度或
新经度将在一个因子之内
对应参数中的2。
编辑:为了使地图也能在正确的地方放大,您必须使用MapController.setCenter()。