package com.nutiteq.maps; import com.nutiteq.utils.Utils; /** * Map type to be used with standard <a * href="http://trac.openlayers.org/wiki/Layer/KaMap">OpenLayers kaMap layer</a> */ //TODO jaanus : describe min/max zoom mapping and what to do if some values removed public class KaMap extends BaseKaMap implements UnstreamedMap { private final String tileUrlPattern; /** * * @param baseurl * URL of tile.php * @param copyright * Map copyright string displayed on screen * @param group * displayed layer group * @param imageFormat * tile image format * @param layerName * Layer name * @param tileSize * map tile size * @param scales * used scales * @param minZoom * map min zoom * @param maxZoom * map max zoom */ public KaMap(final String baseurl, final String copyright, final String group, final String imageFormat, final String layerName, final int tileSize, final int scales[], final int minZoom, final int maxZoom) { super(copyright, tileSize, scales, minZoom, maxZoom); final StringBuffer urlBuffer = new StringBuffer(Utils.prepareForParameters(baseurl)); urlBuffer.append("g=").append(group); urlBuffer.append("&i=").append(imageFormat); urlBuffer.append("&map=").append(layerName); tileUrlPattern = urlBuffer.toString(); } public String buildPath(final int mapX, final int mapY, final int zoom) { final int zoomIndex = zoom - getMinZoom(); final StringBuffer result = new StringBuffer(tileUrlPattern); result.append("&t=").append(mapY - tileMapHeight[zoomIndex] / 2); result.append("&l=").append(mapX - tileMapWidth[zoomIndex] / 2); result.append("&s=").append(scales[zoomIndex]); return result.toString(); } }