2011-09-28 117 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