package org.osmdroid.tileprovider.tilesource;
import android.util.Log;
import org.osmdroid.api.IMapView;
import org.osmdroid.tileprovider.MapTile;
import org.osmdroid.tileprovider.util.CloudmadeUtil;
public class CloudmadeTileSource extends OnlineTileSourceBase implements IStyledTileSource<Integer> {
private Integer mStyle = 1;
public CloudmadeTileSource(final String pName,
final int pZoomMinLevel, final int pZoomMaxLevel, final int pTileSizePixels,
final String pImageFilenameEnding, final String[] pBaseUrl) {
super(pName, pZoomMinLevel, pZoomMaxLevel, pTileSizePixels,
pImageFilenameEnding, pBaseUrl);
}
@Override
public String pathBase() {
if (mStyle == null || mStyle <= 1) {
return mName;
} else {
return mName + mStyle;
}
}
@Override
public String getTileURLString(final MapTile pTile) {
final String key = CloudmadeUtil.getCloudmadeKey();
if (key.length() == 0) {
Log.e(IMapView.LOGTAG,"CloudMade key is not set. You should enter it in the manifest and call CloudmadeUtil.retrieveCloudmadeKey()");
}
final String token = CloudmadeUtil.getCloudmadeToken();
return String.format(getBaseUrl(), key, mStyle, getTileSizePixels(), pTile.getZoomLevel(),
pTile.getX(), pTile.getY(), mImageFilenameEnding, token);
}
@Override
public void setStyle(final Integer pStyle) {
mStyle = pStyle;
}
@Override
public void setStyle(final String pStyle) {
try {
mStyle = Integer.parseInt(pStyle);
} catch (final NumberFormatException e) {
Log.e(IMapView.LOGTAG,"Error setting integer style: " + pStyle);
}
}
@Override
public Integer getStyle() {
return mStyle;
}
}