package com.nutiteq.maps;
import javax.microedition.io.HttpConnection;
import com.nutiteq.maps.projections.EPSG3785;
import com.nutiteq.ui.Copyright;
import com.nutiteq.ui.StringCopyright;
/**
* General Tiled Map Server API connector (url/zoom/x/y.format style)
*/
public class TMSMap extends EPSG3785 implements UnstreamedMap {
private String baseUrl;
private String format;
/**
* Final URL will be generated as
* <b>baseUrl</b><i>zoom</i>/<i>x</i>/<i>y</i><b>format</b>
*
* @param copyright
* Copyright graphics drawn to the map
* @param baseUrl
* URL beginning for the map tile request.
* @param tileSize
* Size of tile image in pixels, usually 256
* @param format
* Tile image format, usually "png" or "jpg".
* @param minZoom
* Minimum (world) zoom level for service. Could be 0
* @param maxZoom
* Maximum zoom level. E.g. for OSM set it to 19
*/
public TMSMap(final String baseUrl, final int tileSize, final int minZoom,
final int maxZoom, final String format, final Copyright copyright) {
super(copyright, tileSize, minZoom, maxZoom);
this.format = format;
this.baseUrl = baseUrl;
}
/**
* Tiled Map Server based general map server API. Final URL will be
* generated as <b>baseUrl</b><i>zoom</i>/<i>x</i>/<i>y</i><b>format</b>
*
* @param copyright
* Copyright as string
* @param baseUrl
* URL beginning for the map tile request.
* @param tileSize
* Size of tile image in pixels, usually 256
* @param format
* Tile image format, usually "png" or "jpg".
* @param minZoom
* Minimum (world) zoom level for service. Could be 0
* @param maxZoom
* Maximum zoom level. E.g. for OSM set it to 19
*/
public TMSMap(final String baseUrl, final int tileSize, final int minZoom,
final int maxZoom, final String format, final String copyright) {
this(baseUrl, tileSize, minZoom, maxZoom, format, new StringCopyright(
copyright));
}
public String buildPath(final int mapX, final int mapY, final int zoom) {
// Usable for TMS <baseurl>/z/x/y.<format> type of servers, 256-pixel
final StringBuffer url = new StringBuffer(baseUrl);
url.append(zoom);
url.append("/");
url.append(mapX / getTileSize()& ((1 << zoom) - 1));
url.append("/");
url.append(mapY / getTileSize());
url.append(format);
return url.toString();
}
public void setRequestHeaders(HttpConnection conn) {
}
}