2011-09-28 143 views
11

我已经写了一个映射应用程序,它有两个活动,一个活动显示谷歌地图视图,另一个显示使用osmdroid 3.0.5 jar的等效视图。捏与Osmdroid缩放

到目前为止,我一直只对模拟器进行测试,功能在显示区域和覆盖数据方面完全相同。现在我已经在真正的姜饼设备上运行了应用程序,我注意到Google地图活动似乎支持缩放,而Osmdroid却没有。

我还没有编写任何特定的代码捏缩放谷歌方面或Osmdroid。这两个活动都实现了OnTouchListener。这两项活动都只是像OnTouch存根:

@Override 
public boolean onTouch(View v, MotionEvent e) { 
    // chain it for now 
    return false; 
} 

我在Osmdroid活动的MapView是类:org.osmdroid.views.MapView

有谁知道如何使捏放大使用osmdroid或知道使用osmdroid的示例应用程序,我可以学习并适应我的应用程序?

回答

3

Osmdroid具有放大功能。您需要设置一个gesturelistener来检查捏合动作,此时您应该在osmdroid中调用缩放功能。我相信在osmdroid 3.0.5它是类似于

mOsm.getController.setZoomLevel(someNumber)(mOsm是地图视图的一个实例)。

我有缩放功能工作的相反捏(你的手指开始靠近在一起,然后展开)。我建议使用一个MotionEvent(像你正在做的),做这样的事情:

boolean finished = false; 

@Override 
public boolean onTouch(View v, MotionEvent e) { 

    switch (e.getAction()) { 

     case MotionEvent.ACTION_DOWN: 
      finished = false; 
      break; 

     case MotionEvent.ACTION_MOVE: 
      finished = false; 
      break; 

     case MotionEvent.ACTION_UP: 
      //action is finishing at this point, so now I can do my refreshActionOnMap(); 
      if (!finished) 
       refreshActionOnMap(); 
      break; 
    } 
    return true; 
} 

我已经加入涉及掐码 - 成品布尔是我在我的计划实施,以弄清楚什么时候刷新地图。这应该会帮助你更多。

Here是对此的进一步解释。

如果您正在寻找不同的东西,请尝试阅读here。显然,自2010年6月以来,Android一直在支持这项紧急行动。

+0

感谢您的信息。我认为这些链接将证明有用。我猜Google Maps的活动(MapsActivity)必须在幕后实施。当然,他们的代码是封闭的源代码,所以看起来我只需要一点工作,而不是仅仅复制他们的实现。 +1的链接。 – NickT

+0

我在我的程序中进行了实验,上面的代码适用于我。如果这更有帮助,那么++! – digerati32

+2

如果我不是这样一个IDIOT,它会马上起作用!我错过了mMapVw.setMultiTouchControls行(true);我当然不会回答我自己的问题。所以为了阻止其他人浪费他们的时间和感激你让我思考,我会接受你的答案。 – NickT

31
MapView.setBuiltInZoomControls(true); 
MapView.setMultiTouchControls(true); 
+5

它工作,虽然它实施得不好。 – Warpzit

+5

我发现当我移动两根手指时,它看起来像放大正常,但只要我抬起它们,地图就会跳到另一个位置。 @Warpzit这是你的意思是“实施不善”? –

+0

@DavidDoria是的,它不能按预期工作:) – Warpzit

2

是否可以不缩放到地图中心而是缩放到用户的两个手指中间。

+0

你有没有找到一个好的解决方案?如果是的话,请回答我的问题http://stackoverflow.com/questions/15626091/osmdroid-and-pinch –

+0

不幸的是,但我问了这里的问题,也许有一天它会被解决:) http:// stackoverflow。 COM /问题/ 15159544 /双指或-PINC变焦到MapView类功能于osmdroid – ismail