package org.osmdroid.tileprovider.tilesource; import java.io.InputStream; import org.osmdroid.ResourceProxy; import org.osmdroid.tileprovider.MapTile; import org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase.LowMemoryException; import android.graphics.drawable.Drawable; public interface ITileSource { /** * An ordinal identifier for this tile source * * @return the ordinal value */ int ordinal(); /** * A human-friendly name for this tile source * * @return the tile source name */ String name(); /** * A localized human-friendly name for this tile source * * @param proxy * a resource proxy * @return the localized tile source name */ String localizedName(ResourceProxy proxy); /** * Get a unique file path for the tile. This file path may be used to store the tile on a file * system and performance considerations should be taken into consideration. It can include * multiple paths. It should not begin with a leading path separator. * * @param aTile * the tile * @return the unique file path */ String getTileRelativeFilenameString(MapTile aTile); /** * Get a rendered Drawable from the specified file path. * * @param aFilePath * a file path * @return the rendered Drawable */ Drawable getDrawable(String aFilePath) throws LowMemoryException; /** * Get a rendered Drawable from the specified InputStream. * * @param aTileInputStream * an InputStream * @return the rendered Drawable */ Drawable getDrawable(InputStream aTileInputStream) throws LowMemoryException; /** * Get the minimum zoom level this tile source can provide. * * @return the minimum zoom level */ public int getMinimumZoomLevel(); /** * Get the maximum zoom level this tile source can provide. * * @return the maximum zoom level */ public int getMaximumZoomLevel(); /** * Get the tile size in pixels this tile source provides. * * @return the tile size in pixels */ public int getTileSizePixels(); }