0

我正在使用Osmdroid创建离线地图

现在,我想为离线地图实现自己的捏缩放功能

当用户使用捏合时,我只想放大/缩小到特定的缩放级别,而不是将缩放级别增加/减少 1

有没有办法做到这一点?我该怎么办?

PS:是的,有缩放控件,但我想让缩放功能更直观

谢谢

4

2 回答 2

1

我认为这样做的方法是扩展 MapView。

覆盖setZoomLevel看起来像是一种选择,但我认为它不会起作用。我相信代码需要以一种不一致的this.setZoomLevel风格编写。

我认为您应该能够覆盖selectObject看起来像捏触发呼叫的地方setZoomLevel

您将需要检查源代码以了解如何进行必要的修改

于 2012-01-13T22:41:54.107 回答
1

我在这里处理了一个类似的问题,并提供了自定义功能的代码。所以基本上,扩展我在答案中的内容,基本上就是这样做:

int currentZoomLevel = mOsmv.getController().getZoomLevel();
if (currentZoomLevel < (mOsmv.getControler().getMaxZoomLevel()) - 2) 
    mOsmv.getController().setZoomLevel(currentZoomLevel + 2);

这只是将缩放级别增加 2 而不是 1 的示例。我还从内存中编写了上面的代码,所以我不能 100% 确定您是否调用getController()以获得当前和最大缩放级别,但我我很确定就是这样。mOsmv,以防万一你不明白,是 osmdroid 地图的一个实例。

于 2012-01-14T04:17:47.457 回答