2013-11-28 92 views
1

我有一個應用程序使用Google地圖片段,我想設置某種方式限制縮放級別,用戶可以通過使用地圖片段中提供的+/-圖標獲取。設置地圖片段縮放極限

有沒有已知的方法可以做到這一點?

我的解決方案:

private final GoogleMap.OnCameraChangeListener mOnCameraChangeListener = 
      new GoogleMap.OnCameraChangeListener() { 

       @Override 
       public void onCameraChange(CameraPosition cameraPosition) { 
        Log.d("Zoom", "Zoon: " + cameraPosition.zoom); 
        if (cameraPosition.zoom > 16.01) { 
         getMap().animateCamera(CameraUpdateFactory.zoomTo(16)); 
        } 
       } 
      }; 

onViewCreated()

//set the zoom limit 
getMap().setOnCameraChangeListener(mOnCameraChangeListener); 

到目前爲止,這正顯示出我每次縮放級別縮放級別的變化。我不知道我怎麼能限制這裏的縮放,雖然...我不能只是做cameraPosition.zoom=15,因爲它是一個最終變量。

任何建議高度讚賞。

+0

使用'GoogleMap.OnCameraChangeListener'和'onCameraChange(CameraPosition位置)'設置邏輯,通過使用'position.zoom'來限制縮放級別到一定的限制 –

+0

我已經編輯了我的問題,請你檢查一下並讓我知道你對我有什麼建議嗎? –

回答

1

您不能限制API版本4.0.30以上的縮放。 沒有爲這裏掛起功能要求:https://code.google.com/p/gmaps-api-issues/issues/detail?id=4663

如果你不能等待,你可以嘗試實施這樣的事情:http://youtube.com/watch?v=-nCZ37HdheY
這使用OnCameraChangeListenerGoogleMap.animateCamera

+0

看起來像我需要的視頻類型,請你給我提供一些實現細節?因爲我找不到這個視頻的任何描述。 –

+0

@AdrianOlar你可以嘗試聯繫作者的視頻。我沒有試圖實現這一點,但它看起來不像是魔法。一些檢查和對animateCamera的調用。 –

+0

確實這很簡單,謝謝你的回覆,我已經更新了我的問題:) –

0

您可以刪除縮放按鈕並使用自己的,在那裏你有更多的控制。然後,您可以根據業務規則根據需要禁用按鈕。