2012-01-03 108 views
1

我已經選中this answer,但例如做無非否則顯示灰瓦(我在離線模式)縮放級別比我給的限值(4在我的情況)......如何在osmdroid中設置最大縮放?

OnlineTileSourceBase source = new XYTileSource("tiles", ResourceProxy.string.offline_mode, 0, 4, 256, ".png", ""); 

下面的代碼顯示maxZoom=4

int zoomLevel = source.getMaximumZoomLevel(); 
Toast.makeText(this, "maxZoom=" + zoomLevel, Toast.LENGTH_SHORT).show(); 

0和4我的代碼之間的縮放級別按預期工作:加載地圖圖塊從SD車d。我對這個問題的理解是,代碼顯示所有的瓷磚每個放大發現,當未發現其他變焦它仍然在放大

XYTileSourcefinal int aZoomMaxLevel)構造The API clearly specifies setting the max zoom level

public XYTileSource(final String aName, final string aResourceId, final int aZoomMinLevel, 
         final int aZoomMaxLevel, final int aTileSizePixels, final String aImageFilenameEnding, 
         final String... aBaseUrl) 

任何解決方法?我究竟做錯了什麼?我怎樣才能阻止變焦,使用戶不能超越4級?

+0

即使即時下面的osmdroid,讓我knw如果你得到一個解決方法,可能它已經得到smthn做機智縮放控制當v使用mapview.setBuiltinZoomControls().. – 2012-01-03 17:51:28

回答

3

我們找到了一個解決方法,以全局設置的最大縮放級別爲整個application.You已經到值更改爲所需的級別在文件OpenStreetMapTileProviderConstants在包org.osmdroid.tileprovider.constants在osmdroid,Android項目。這不是正確的方式,但對我們來說工作得很好! :)

+0

這意味着我需要添加osmdroid項目作爲一個庫項目(即不是一個jar文件),不是嗎?你能否詳細介紹一下過程,所以我可以接受答案? – 2012-01-05 19:36:19

+0

目前我們的項目對osmdroid-android有依賴。如果你想以jar的形式實現這個項目,我建議你必須改變它,然後把它作爲一個新的jar來導出。 – Dominik 2012-01-06 08:20:48

+0

由於OSMDroid是LGPL,所以要小心這樣做。如果您更改來源併發布您必須在LGPL下發布幷包含更改後的來源。 – 2013-11-20 23:49:40

1

您可以找到詳細的按照壓如何構建這裏的罐子here

兩個org.osmdroid.views.util.constants.MapViewConstants 和org.osmdroid.tileprovider.constants.OpenStreetMapTileProviderConstants 更改MAXIMUM_ZOOMLEVEL應做這項工作。

從SVN獲取osmdroid源碼http://osmdroid.googlecode.com/svn/branches/release_3_0_5 我推薦這個版本,因爲它會更容易最終在縮放限制旁應用滾動限制補丁。

10

MapView類定義了公共函數getMaxZoomLevel()。的MapView一個不重要的擴展將讓你覆蓋該函數返回任何你想要的,而不必到osmdroid源編譯成JAR:

public class ZoomLimitMapView extends MapView 
{ 
    /* snip the constructors */ 

    @Override 
    public int getMaxZoomLevel() 
    { 
     return 4; 
    } 
} 

你並不需要一個最小縮放級別,但如果你沒有,getMinZoomLevel()也是公開的,可以被覆蓋。顯然,使用常量字面4可能是一個壞主意;更好地從SharedPreferences動態加載,除非你知道你的圖像永遠不會改變。

+0

親愛的jatowler。我到底需要放置這些代碼? – birgit 2012-10-28 16:46:45

+0

這正是我正在尋找的。謝謝! – jbc25 2013-09-03 21:34:35

+0

這很好。我認爲這應該是被接受的答案。 請記住,您還需要更改佈局文件中的重載類。 – 2013-11-21 00:06:27

相關問題