package com.nutiteq.maps;
import com.nutiteq.maps.projections.EPSG3785;
import com.nutiteq.ui.Copyright;
import com.nutiteq.ui.StringCopyright;
/**
* General MGMaps URL style Server API connector (baseUrl?x=x&y=y&zoom=zoom style, based on "old google tile" URL)
*/
public class MGMapsMap extends EPSG3785 implements UnstreamedMap {
private String baseUrl;
private String format;
/**
* Final URL will be generated as
* <b>baseUrl</b>&x=<i>x</i>&y=<i>y</i>&zoom=<i>zoom</i></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. 21
*/
public MGMapsMap(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;
}
/**
* MGMaps URL style map server API.
* Final URL will be generated as
* <b>baseUrl</b>&x=<i>x</i>&y=<i>y</i>&zoom=<i>zoom</i></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.
*/
public MGMapsMap(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) {
final StringBuffer url = new StringBuffer(baseUrl);
url.append("&x=");
url.append(mapX / getTileSize());
url.append("&y=");
url.append(mapY / getTileSize());
url.append("&zoom=");
url.append(zoom);
return url.toString();
}
}