介紹Introduction
TileProvider是在OSMDROID中很重要的一個部分,他負責從Tile Server或記憶卡中將圖資拿出來並喂給MapView去做顯示。
OSMDROID內建的圖資
在OSMDROID中有支援以下幾種圖資:
OpenStreetMap提供
(1)MAPNIK
OpenCycleMap提供
(2)CYCLEMAP
Open Public Transport Map提供
(3)PUBLIC_TRANSPORT
MapQuest提供
(4)MAPQUESTOSM
(5)MAPQUESTAERIAL
(6)MAPQUESTAERIAL_US
CloudMade提供
(7)CLOUDMADESTANDARDTILES
(8)CLOUDMADESMALLTILES
OpenStreetMap Nederland提供
(9)FIETS_OVERLAY_NL
(10)BASE_OVERLAY_NL
(11)ROADS_OVERLAY_NL
以上圖資使用方式(以MAPNIK為例)
mapview.setTileSource(TileSourceFactory.MAPNIK);
自訂TileSource
看不慣內建的TileSource嗎?一定在想說可不可以更換對吧答案是可以的喔~,只要這樣寫就好了(以CartoDB Light為例,更多TileSource可以去OpenStreetMap的Wiki查看)
public static final OnlineTileSourceBase CARTODB = new XYTileSource("CartoDB", ResourceProxy.string.unknown,2,19,256,".png",new String[]{ "http://a.basemaps.cartocdn.com/light_all/"});先來說一下XYTileSource的參數說明
XYTileSource("Tile的名稱", Tile的ID(如果在ResourceProxy中沒有定義直接用unknown就好), Tile最小的zoom level, Tile最大的zoom level, Tile的圖資大小(256x256就寫256,如果是512x512就寫512), "Tile圖資的副檔名(如果是png就寫 .png)", 圖資的網址或位置(如果有多個位置可以用String[]來定義多個位置) );這樣宣告完就能設定MapView的圖資是我們自己自訂的囉~
mapview.setTileSource(CARTODB);
沒有留言:
張貼留言