2015-12-18 24 views
1

我在這個路由和地圖領域真的很新穎。我有一個基本的,也許愚蠢的問題。我用osmdroid從看起來像這樣Osmdroid XYTileSource傳遞X和Y參數

http://tile01-cdn.maptoolkit.net/terrain/15/17789/11515.png

其中15代表變焦, 17789的X值和 11515的Ÿ值的URL顯示瓦

現在,當我想使用osmdroid在地圖中顯示這個圖塊時,我不知道應該使用什麼樣的TileSource。最明顯的是XYTileSource,但構造函數沒有任何x y參數可以通過,但我在互聯網上看到很多問題/答案,其中人們使用相同的對象但具有不同的構造函數。我在這裏猜測代碼在lib中已經改變了。目前的構造函數:

XYTileSource(String aName, int aZoomMinLevel, int aZoomMaxLevel, int aTileSizePixels, String aImageFilenameEnding, String[] aBaseUrl) 

所以我的問題是我怎麼能顯示我的在osmdroid地圖這個瓦片地圖,我應該用什麼樣的ITileSource?我應該實施自己的自定義嗎?

這就是我試圖做到這一點:

final ITileSource tileSource = new XYTileSource("Maverik", 15, 17789, 11515, ".png", new String[] {"http://tile01-cdn.maptoolkit.net/terrain/"}); 
     tileProvider.setTileSource(tileSource); 

,我得到一個空MapView

回答

1

osmdroid的目的是顯示世界地圖 - 有很多瓷磚。並根據「地圖視圖」居中位置(此中心的定義爲:緯度,經度和縮放級別)顯示適當的貼圖。

如果這也是你想要什麼:

1)作爲例子,來看看默認的瓦來源包括在osmdroid,在TileSourceFactory

2)然後,你可以嘗試這樣的:

OnlineTileSourceBase tileSource = new XYTileSource("Maverik", 
    0, 17, 
    256, ".png", 
    new String[] { 
    "http://tile01-cdn.maptoolkit.net/terrain/", 
    "http://tile02-cdn.maptoolkit.net/terrain/", 
    "http://tile03-cdn.maptoolkit.net/terrain/" 
    }); 
mapView.setTileSource(tileSource); 
+0

Thx的提示,我試圖使用默認瓷磚來源之前,我問這個問題,例如:'mMapView.setTileSource(TileSourceFactory.PUBLIC_TRANSPORT);'但沒有結果。我仍然總是得到一個空網格。我已經在清單中添加了我在問答中遇到的相同問題中的所有權限。 – Aksiom

+0

從基本的「Hello osmdroid World」tuto開始(https://github.com/osmdroid/osmdroid/wiki/How-to-use-the-osmdroid-library)。如果你仍然有灰色的網格,那麼問題出現在你的項目配置中。 – MKer

1

您可能還想要諮詢osmdroid wiki以及示例應用程序的來源。有很多關於如何使用我們所知道的每個瓦片源的例子。我們還發現了更多。

https://github.com/osmdroid/osmdroid/wiki

您不必擔心X和Y座標。他們實際上不是經緯度座標,而是網格參考。開放街道地圖和許多其他圖塊資源,使用相同或相似的圖塊座標系。從一個圖像的世界開始。縮放= 1將其分成4部分。這是您的X,Y和縮放座標。縮放= 2級,將我們開始的四個貼片再次分成4個,我們有16個貼片。

+0

Thx的解釋,我已經通過維基。我之所以選擇osmdroid的原因之一是因爲文檔:) – Aksiom