package com.nutiteq.maps; import com.nutiteq.components.MapTile; import com.nutiteq.utils.Utils; public class StreamedKaMap extends BaseKaMap implements StreamedMap { private final String baseurl; public StreamedKaMap(final String baseurl, final String copyright, final int tileSize, final int[] scales, final int minZoom, final int maxZoom) { super(copyright, tileSize, scales, minZoom, maxZoom); this.baseurl = Utils.prepareForParameters(baseurl); } public String buildStreamedPath(final MapTile[] tiles) { final StringBuffer urlBuf = new StringBuffer(baseurl); final MapTile firstTile = tiles[0]; final int zoomIndex = firstTile.getZoom() - getMinZoom(); final int halfMapHeight = tileMapHeight[zoomIndex] / 2; final int halfMapWidth = tileMapWidth[zoomIndex] / 2; urlBuf.append("z="); urlBuf.append(scales[zoomIndex]); urlBuf.append("&t="); urlBuf.append(firstTile.getX() - halfMapWidth); urlBuf.append(','); urlBuf.append(firstTile.getY() - halfMapHeight); for (int i = 1; i < tiles.length; i++) { final MapTile obj = tiles[i]; urlBuf.append(','); urlBuf.append(obj.getX() - halfMapWidth); urlBuf.append(','); urlBuf.append(obj.getY() - halfMapHeight); } return urlBuf.toString(); } }