add TileSource.Builders
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
*/
|
||||
package org.oscim.android.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.OPENSTREETMAP;
|
||||
|
||||
import org.oscim.android.MapActivity;
|
||||
import org.oscim.android.MapView;
|
||||
import org.oscim.android.cache.TileCache;
|
||||
@@ -22,7 +24,6 @@ import org.oscim.layers.TileGridLayer;
|
||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
||||
import org.oscim.renderer.MapRenderer;
|
||||
import org.oscim.tiling.TileSource;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class BitmapTileMapActivity extends MapActivity {
|
||||
protected BitmapTileLayer mBitmapLayer;
|
||||
|
||||
public BitmapTileMapActivity() {
|
||||
mTileSource = new DefaultSources.OpenStreetMap();
|
||||
mTileSource = OPENSTREETMAP.build();
|
||||
}
|
||||
|
||||
public BitmapTileMapActivity(TileSource tileSource) {
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
package org.oscim.android.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -27,19 +29,18 @@ import org.oscim.layers.marker.ItemizedLayer.OnItemGestureListener;
|
||||
import org.oscim.layers.marker.MarkerItem;
|
||||
import org.oscim.layers.marker.MarkerItem.HotspotPlace;
|
||||
import org.oscim.layers.marker.MarkerSymbol;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class MarkerOverlayActivity extends BitmapTileMapActivity
|
||||
implements OnItemGestureListener<MarkerItem> {
|
||||
implements OnItemGestureListener<MarkerItem> {
|
||||
|
||||
private MarkerSymbol mFocusMarker;
|
||||
|
||||
public MarkerOverlayActivity() {
|
||||
super(new DefaultSources.StamenToner());
|
||||
super(STAMEN_TONER.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,7 +55,7 @@ implements OnItemGestureListener<MarkerItem> {
|
||||
|
||||
ItemizedLayer<MarkerItem> markerLayer =
|
||||
new ItemizedLayer<MarkerItem>(mMap, new ArrayList<MarkerItem>(),
|
||||
symbol, this);
|
||||
symbol, this);
|
||||
|
||||
mMap.layers().add(markerLayer);
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
*/
|
||||
package org.oscim.android.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
|
||||
import org.oscim.android.MapActivity;
|
||||
import org.oscim.android.MapView;
|
||||
import org.oscim.layers.TileGridLayer;
|
||||
@@ -25,7 +27,6 @@ import org.oscim.theme.IRenderTheme;
|
||||
import org.oscim.theme.ThemeLoader;
|
||||
import org.oscim.theme.VtmThemes;
|
||||
import org.oscim.tiling.TileSource;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.StamenToner;
|
||||
import org.oscim.tiling.source.geojson.HighroadJsonTileSource;
|
||||
import org.oscim.tiling.source.geojson.OsmBuildingJsonTileSource;
|
||||
import org.oscim.tiling.source.geojson.OsmLanduseJsonTileSource;
|
||||
@@ -49,7 +50,7 @@ public class OsmJsonMapActivity extends MapActivity {
|
||||
|
||||
mTileSource = new OsmWaterJsonTileSource();
|
||||
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, new StamenToner()));
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, STAMEN_TONER.build()));
|
||||
mMap.layers().add(new TileGridLayer(mMap));
|
||||
|
||||
IRenderTheme theme = ThemeLoader.load(VtmThemes.OSMARENDER);
|
||||
|
||||
@@ -16,13 +16,14 @@
|
||||
*/
|
||||
package org.oscim.android.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.oscim.backend.canvas.Color;
|
||||
import org.oscim.core.GeoPoint;
|
||||
import org.oscim.layers.PathLayer;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
@@ -30,7 +31,7 @@ import android.os.SystemClock;
|
||||
public class PathOverlayActivity extends BitmapTileMapActivity {
|
||||
|
||||
public PathOverlayActivity() {
|
||||
super(new DefaultSources.StamenToner());
|
||||
super(STAMEN_TONER.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,7 +59,8 @@ public class PathOverlayActivity extends BitmapTileMapActivity {
|
||||
}
|
||||
}, 50);
|
||||
}
|
||||
void redraw(){
|
||||
|
||||
void redraw() {
|
||||
mMap.render();
|
||||
}
|
||||
|
||||
@@ -71,7 +73,7 @@ public class PathOverlayActivity extends BitmapTileMapActivity {
|
||||
for (double lat = -90; lat <= 90; lat += 5) {
|
||||
List<GeoPoint> pts = new ArrayList<GeoPoint>();
|
||||
|
||||
for (double lon = -180; lon <= 180; lon += 2){
|
||||
for (double lon = -180; lon <= 180; lon += 2) {
|
||||
//pts.add(new GeoPoint(lat, lon));
|
||||
double longitude = lon + (pos * 180);
|
||||
if (longitude < -180)
|
||||
@@ -79,8 +81,8 @@ public class PathOverlayActivity extends BitmapTileMapActivity {
|
||||
if (longitude > 180)
|
||||
longitude -= 360;
|
||||
|
||||
double latitude = lat + (pos * 90);
|
||||
if (latitude< -90)
|
||||
double latitude = lat + (pos * 90);
|
||||
if (latitude < -90)
|
||||
latitude += 180;
|
||||
if (latitude > 90)
|
||||
latitude -= 180;
|
||||
|
||||
@@ -20,7 +20,11 @@ public class S3DBMapActivity extends BaseMapActivity {
|
||||
|
||||
mMap.setTheme(VtmThemes.DEFAULT);
|
||||
|
||||
TileSource ts = new OSciMap4TileSource("http://opensciencemap.org/tiles/s3db");
|
||||
TileSource ts = OSciMap4TileSource.builder()
|
||||
.url("http://opensciencemap.org/tiles/s3db")
|
||||
.zoomMin(16)
|
||||
.zoomMax(16)
|
||||
.build();
|
||||
|
||||
if (USE_CACHE) {
|
||||
mS3dbCache = new TileCache(this, null, "s3db.db");
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package org.oscim.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.HD_HILLSHADE;
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.OPENSTREETMAP;
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_WATERCOLOR;
|
||||
|
||||
import org.oscim.gdx.GdxMap;
|
||||
import org.oscim.gdx.GdxMapApp;
|
||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
||||
import org.oscim.renderer.MapRenderer;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.HillShadeHD;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.OpenStreetMap;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.StamenToner;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.StamenWatercolor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -18,23 +19,28 @@ public class BitmapLayerTest extends GdxMap {
|
||||
final Logger log = LoggerFactory.getLogger(BitmapTileLayer.class);
|
||||
|
||||
BitmapTileLayer mLayer = null;
|
||||
BitmapTileLayer mShaded = null;
|
||||
|
||||
@Override
|
||||
protected boolean onKeyDown(int keycode) {
|
||||
if (keycode == Input.Keys.NUM_1) {
|
||||
mMap.layers().remove(mLayer);
|
||||
mLayer = new BitmapTileLayer(mMap, new OpenStreetMap());
|
||||
mMap.layers().set(2, mLayer);
|
||||
mLayer = new BitmapTileLayer(mMap, OPENSTREETMAP.build());
|
||||
mMap.layers().add(mLayer);
|
||||
return true;
|
||||
} else if (keycode == Input.Keys.NUM_2) {
|
||||
mMap.layers().remove(mLayer);
|
||||
mLayer = new BitmapTileLayer(mMap, new StamenWatercolor());
|
||||
mMap.layers().set(2, mLayer);
|
||||
mLayer = new BitmapTileLayer(mMap, STAMEN_WATERCOLOR.build());
|
||||
mMap.layers().add(mLayer);
|
||||
return true;
|
||||
} else if (keycode == Input.Keys.NUM_3) {
|
||||
mMap.layers().remove(mLayer);
|
||||
mLayer = new BitmapTileLayer(mMap, new HillShadeHD());
|
||||
mMap.layers().set(2, mLayer);
|
||||
if (mShaded != null) {
|
||||
mMap.layers().remove(mShaded);
|
||||
mShaded = null;
|
||||
} else {
|
||||
mShaded = new BitmapTileLayer(mMap, HD_HILLSHADE.build());
|
||||
mMap.layers().add(mShaded);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -45,7 +51,7 @@ public class BitmapLayerTest extends GdxMap {
|
||||
public void createLayers() {
|
||||
MapRenderer.setBackgroundColor(0xff888888);
|
||||
|
||||
mLayer = new BitmapTileLayer(mMap, new StamenToner());
|
||||
mLayer = new BitmapTileLayer(mMap, STAMEN_TONER.build());
|
||||
mMap.layers().add(mLayer);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package org.oscim.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
|
||||
import org.oscim.gdx.GdxMapApp;
|
||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
||||
import org.oscim.layers.tile.buildings.S3DBLayer;
|
||||
import org.oscim.tiling.TileSource;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources;
|
||||
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
||||
|
||||
public class MeshTest extends GdxMapApp {
|
||||
@@ -16,7 +17,7 @@ public class MeshTest extends GdxMapApp {
|
||||
//VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource());
|
||||
//mMap.setTheme(VtmThemes.DEFAULT);
|
||||
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, new DefaultSources.StamenToner()));
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, STAMEN_TONER.build()));
|
||||
|
||||
TileSource ts = new OSciMap4TileSource("http://opensciencemap.org/tiles/s3db");
|
||||
S3DBLayer tl = new S3DBLayer(mMap, ts);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.oscim.test;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
|
||||
import org.oscim.core.MercatorProjection;
|
||||
import org.oscim.gdx.GdxMap;
|
||||
import org.oscim.gdx.GdxMapApp;
|
||||
@@ -15,7 +17,6 @@ import org.oscim.layers.tile.vector.VectorTileLoader;
|
||||
import org.oscim.renderer.MapRenderer;
|
||||
import org.oscim.theme.DebugTheme;
|
||||
import org.oscim.tiling.TileSource;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources;
|
||||
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
||||
|
||||
public class TileRenderTest extends GdxMap {
|
||||
@@ -114,7 +115,7 @@ public class TileRenderTest extends GdxMap {
|
||||
}
|
||||
}
|
||||
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, new DefaultSources.StamenToner()));
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, STAMEN_TONER.build()));
|
||||
|
||||
mMap.layers().add(l);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.oscim.test.jeo;
|
||||
|
||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
@@ -14,7 +16,6 @@ import org.oscim.layers.OSMIndoorLayer;
|
||||
import org.oscim.layers.TileGridLayer;
|
||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
||||
import org.oscim.test.JeoTest;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.StamenToner;
|
||||
|
||||
public class LayerTest extends GdxMap {
|
||||
|
||||
@@ -24,7 +25,7 @@ public class LayerTest extends GdxMap {
|
||||
|
||||
@Override
|
||||
public void createLayers() {
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, new StamenToner()));
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, STAMEN_TONER.build()));
|
||||
mMap.layers().add(new TileGridLayer(mMap));
|
||||
|
||||
mMap.addTask(new Runnable() {
|
||||
|
||||
@@ -35,7 +35,6 @@ import org.oscim.theme.VtmThemes;
|
||||
import org.oscim.tiling.TileSource;
|
||||
import org.oscim.tiling.source.bitmap.BitmapTileSource;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources;
|
||||
import org.oscim.tiling.source.bitmap.DefaultSources.StamenToner;
|
||||
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -90,17 +89,17 @@ class GwtMap extends GdxMap {
|
||||
BitmapTileSource ts;
|
||||
|
||||
if ("toner".equals(mapName))
|
||||
ts = new StamenToner();
|
||||
ts = DefaultSources.STAMEN_TONER.build();
|
||||
else if ("osm".equals(mapName))
|
||||
ts = new DefaultSources.OpenStreetMap();
|
||||
ts = DefaultSources.OPENSTREETMAP.build();
|
||||
else if ("watercolor".equals(mapName))
|
||||
ts = new DefaultSources.StamenWatercolor();
|
||||
ts = DefaultSources.STAMEN_WATERCOLOR.build();
|
||||
else if ("arcgis-shaded".equals(mapName))
|
||||
ts = new DefaultSources.ArcGISWorldShaded();
|
||||
ts = DefaultSources.ARCGIS_RELIEF.build();
|
||||
else if ("imagico".equals(mapName))
|
||||
ts = new DefaultSources.ImagicoLandcover();
|
||||
ts = DefaultSources.IMAGICO_LANDCOVER.build();
|
||||
else
|
||||
ts = new StamenToner();
|
||||
ts = DefaultSources.STAMEN_TONER.build();
|
||||
|
||||
mMap.setBaseMap(new BitmapTileLayer(mMap, ts));
|
||||
} else {
|
||||
@@ -123,7 +122,11 @@ class GwtMap extends GdxMap {
|
||||
|
||||
boolean s3db = mapUrl.params.containsKey("s3db");
|
||||
if (s3db) {
|
||||
TileSource ts = new OSciMap4TileSource("http://opensciencemap.org/tiles/s3db");
|
||||
TileSource ts = OSciMap4TileSource.builder()
|
||||
.url("http://opensciencemap.org/tiles/s3db")
|
||||
.zoomMin(16)
|
||||
.zoomMax(16)
|
||||
.build();
|
||||
mMap.layers().add(new S3DBLayer(mMap, ts));
|
||||
}
|
||||
if (l != null) {
|
||||
|
||||
@@ -24,6 +24,26 @@ import com.google.gwt.user.client.ui.RootPanel;
|
||||
public class BitmapTileSource extends UrlTileSource {
|
||||
static final Logger log = LoggerFactory.getLogger(LwHttp.class);
|
||||
|
||||
public static class Builder<T extends Builder<T>> extends UrlTileSource.Builder<T> {
|
||||
|
||||
public Builder() {
|
||||
super(null, "/{Z}/{X}/{Y}.png", 0, 17);
|
||||
}
|
||||
|
||||
public BitmapTileSource build() {
|
||||
return new BitmapTileSource(this);
|
||||
}
|
||||
}
|
||||
|
||||
protected BitmapTileSource(Builder<?> builder) {
|
||||
super(builder);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static Builder<?> builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create BitmapTileSource for 'url'
|
||||
*
|
||||
|
||||
@@ -22,9 +22,44 @@ import org.oscim.layers.tile.bitmap.BitmapTileLayer.FadeStep;
|
||||
|
||||
public abstract class TileSource {
|
||||
|
||||
public abstract static class Builder<T extends Builder<T>> {
|
||||
int minZoom, maxZoom;
|
||||
FadeStep[] fadeSteps;
|
||||
|
||||
public T zoomMin(int zoom) {
|
||||
minZoom = zoom;
|
||||
return self();
|
||||
}
|
||||
|
||||
public T zoomMax(int zoom) {
|
||||
maxZoom = zoom;
|
||||
return self();
|
||||
}
|
||||
|
||||
public T fadeSteps(FadeStep[] fadeSteps) {
|
||||
this.fadeSteps = fadeSteps;
|
||||
return self();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
protected T self() {
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
public abstract TileSource build();
|
||||
}
|
||||
|
||||
protected int mZoomMin = 0;
|
||||
protected int mZoomMax = 20;
|
||||
|
||||
protected TileSource() {
|
||||
}
|
||||
|
||||
protected TileSource(int zoomMin, int zoomMax) {
|
||||
mZoomMin = zoomMin;
|
||||
mZoomMax = zoomMax;
|
||||
}
|
||||
|
||||
public abstract ITileDataSource getDataSource();
|
||||
|
||||
public abstract OpenResult open();
|
||||
@@ -35,6 +70,8 @@ public abstract class TileSource {
|
||||
|
||||
public ITileCache tileCache;
|
||||
|
||||
private FadeStep[] mFadeSteps;
|
||||
|
||||
/**
|
||||
* Cache MUST be set before TileSource is added to a TileLayer!
|
||||
*/
|
||||
@@ -51,7 +88,7 @@ public abstract class TileSource {
|
||||
}
|
||||
|
||||
public FadeStep[] getFadeSteps() {
|
||||
return null;
|
||||
return mFadeSteps;
|
||||
}
|
||||
|
||||
public TileSource setOption(String key, String value) {
|
||||
|
||||
@@ -27,6 +27,40 @@ import org.oscim.tiling.source.LwHttp.LwHttpFactory;
|
||||
|
||||
public abstract class UrlTileSource extends TileSource {
|
||||
|
||||
public abstract static class Builder<T extends Builder<T>> extends TileSource.Builder<T> {
|
||||
protected int zoomMin, zoomMax;
|
||||
protected String tilePath;
|
||||
protected String url;
|
||||
private HttpEngine.Factory engineFactory;
|
||||
|
||||
protected Builder() {
|
||||
|
||||
}
|
||||
|
||||
protected Builder(String url, String tilePath, int zoomMin, int zoomMax) {
|
||||
this.url = url;
|
||||
this.tilePath = tilePath;
|
||||
this.zoomMin = zoomMin;
|
||||
this.zoomMax = zoomMax;
|
||||
}
|
||||
|
||||
public T tilePath(String tilePath) {
|
||||
this.tilePath = tilePath;
|
||||
return self();
|
||||
}
|
||||
|
||||
public T url(String url) {
|
||||
this.url = url;
|
||||
return self();
|
||||
}
|
||||
|
||||
public T httpFactory(HttpEngine.Factory factory) {
|
||||
this.engineFactory = factory;
|
||||
return self();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final static TileUrlFormatter URL_FORMATTER = new DefaultTileUrlFormatter();
|
||||
private final URL mUrl;
|
||||
private final String[] mTilePath;
|
||||
@@ -39,19 +73,17 @@ public abstract class UrlTileSource extends TileSource {
|
||||
public String formatTilePath(UrlTileSource tileSource, Tile tile);
|
||||
}
|
||||
|
||||
public UrlTileSource(String url, String tilePath, int zoomMin, int zoomMax) {
|
||||
this(url, tilePath);
|
||||
mZoomMin = zoomMin;
|
||||
mZoomMax = zoomMax;
|
||||
protected UrlTileSource(Builder<?> builder) {
|
||||
this(builder.url, builder.tilePath, builder.zoomMin, builder.zoomMax);
|
||||
mHttpFactory = builder.engineFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param urlString 'http://example.com/'
|
||||
* @param tilePath replacement string for tile coordinates,
|
||||
* e.g. '{Z}/{X}/{Y}.png'
|
||||
*/
|
||||
public UrlTileSource(String urlString, String tilePath) {
|
||||
protected UrlTileSource(String urlString, String tilePath) {
|
||||
this(urlString, tilePath, 0, 17);
|
||||
}
|
||||
|
||||
protected UrlTileSource(String urlString, String tilePath, int zoomMin, int zoomMax) {
|
||||
super(zoomMin, zoomMax);
|
||||
if (tilePath == null)
|
||||
throw new IllegalArgumentException("tilePath cannot be null.");
|
||||
|
||||
|
||||
@@ -18,6 +18,26 @@ import org.slf4j.LoggerFactory;
|
||||
public class BitmapTileSource extends UrlTileSource {
|
||||
static final Logger log = LoggerFactory.getLogger(LwHttp.class);
|
||||
|
||||
public static class Builder<T extends Builder<T>> extends UrlTileSource.Builder<T> {
|
||||
|
||||
public Builder() {
|
||||
super(null, "/{Z}/{X}/{Y}.png", 0, 17);
|
||||
}
|
||||
|
||||
public BitmapTileSource build() {
|
||||
return new BitmapTileSource(this);
|
||||
}
|
||||
}
|
||||
|
||||
protected BitmapTileSource(Builder<?> builder) {
|
||||
super(builder);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static Builder<?> builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create BitmapTileSource for 'url'
|
||||
*
|
||||
@@ -26,15 +46,19 @@ public class BitmapTileSource extends UrlTileSource {
|
||||
* implement getUrlString() for custom formatting.
|
||||
*/
|
||||
public BitmapTileSource(String url, int zoomMin, int zoomMax) {
|
||||
super(url, "/{Z}/{X}/{Y}.png", zoomMin, zoomMax);
|
||||
this(url, "/{Z}/{X}/{Y}.png", zoomMin, zoomMax);
|
||||
}
|
||||
|
||||
public BitmapTileSource(String url, int zoomMin, int zoomMax, String extension) {
|
||||
super(url, "/{Z}/{X}/{Y}" + extension, zoomMin, zoomMax);
|
||||
this(url, "/{Z}/{X}/{Y}" + extension, zoomMin, zoomMax);
|
||||
}
|
||||
|
||||
public BitmapTileSource(String url, String tilePath, int zoomMin, int zoomMax) {
|
||||
super(url, tilePath, zoomMin, zoomMax);
|
||||
super(builder()
|
||||
.url(url)
|
||||
.tilePath(tilePath)
|
||||
.zoomMin(zoomMin)
|
||||
.zoomMax(zoomMax));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.oscim.tiling.source.bitmap;
|
||||
|
||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer.FadeStep;
|
||||
import org.oscim.tiling.source.bitmap.BitmapTileSource.Builder;
|
||||
|
||||
/**
|
||||
* Do not use in applications unless you read through and comply to
|
||||
@@ -8,82 +9,27 @@ import org.oscim.layers.tile.bitmap.BitmapTileLayer.FadeStep;
|
||||
*/
|
||||
public class DefaultSources {
|
||||
|
||||
public static class OpenStreetMap extends BitmapTileSource {
|
||||
public OpenStreetMap() {
|
||||
super("http://tile.openstreetmap.org", 0, 18);
|
||||
}
|
||||
}
|
||||
public static Builder<?> OPENSTREETMAP = BitmapTileSource.builder()
|
||||
.url("http://tile.openstreetmap.org")
|
||||
.zoomMax(18);
|
||||
|
||||
public static class OSMTransport extends BitmapTileSource {
|
||||
public OSMTransport() {
|
||||
super("http://a.tile.thunderforest.com/transport", 0, 18);
|
||||
}
|
||||
}
|
||||
public static Builder<?> OSM_TRANSPORT = BitmapTileSource.builder()
|
||||
.url("http://a.tile.thunderforest.com/transport")
|
||||
.zoomMax(18);
|
||||
|
||||
public static class StamenToner extends BitmapTileSource {
|
||||
public StamenToner() {
|
||||
super("http://a.tile.stamen.com/toner", 0, 18);
|
||||
}
|
||||
}
|
||||
public static Builder<?> STAMEN_TONER = BitmapTileSource.builder()
|
||||
.url("http://a.tile.stamen.com/toner")
|
||||
.zoomMax(18);
|
||||
|
||||
public static class StamenWatercolor extends BitmapTileSource {
|
||||
public StamenWatercolor() {
|
||||
super("http://a.tile.stamen.com/watercolor", 0, 16);
|
||||
}
|
||||
}
|
||||
public static Builder<?> STAMEN_WATERCOLOR = BitmapTileSource.builder()
|
||||
.url("http://a.tile.stamen.com/watercolor")
|
||||
.tilePath("/{Z}/{X}/{Y}.jpg")
|
||||
.zoomMax(18);
|
||||
|
||||
public static class ImagicoLandcover extends BitmapTileSource {
|
||||
public ImagicoLandcover() {
|
||||
super("http://www.imagico.de/map/tiles/landcover", 0, 6, ".jpg");
|
||||
}
|
||||
}
|
||||
|
||||
public static class MapQuestAerial extends BitmapTileSource {
|
||||
public MapQuestAerial() {
|
||||
super("http://otile1.mqcdn.com/tiles/1.0.0/sat", 0, 8, ".jpg");
|
||||
}
|
||||
|
||||
@Override
|
||||
public FadeStep[] getFadeSteps() {
|
||||
return fadeSteps;
|
||||
}
|
||||
}
|
||||
|
||||
public static class NaturalEarth extends BitmapTileSource {
|
||||
public NaturalEarth() {
|
||||
super("http://opensciencemap.org/tiles/ne", 0, 8);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FadeStep[] getFadeSteps() {
|
||||
return fadeSteps;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ArcGISWorldShaded extends BitmapTileSource {
|
||||
public ArcGISWorldShaded() {
|
||||
super("http://server.arcgisonline.com/ArcGIS/rest/services" +
|
||||
"/World_Shaded_Relief/MapServer/tile/",
|
||||
"{Z}/{Y}/{X}", 0, 13);
|
||||
}
|
||||
}
|
||||
|
||||
public static class HillShadeHD extends BitmapTileSource {
|
||||
public HillShadeHD() {
|
||||
super("http://129.206.74.245:8004/tms_hs.ashx",
|
||||
"?x={X}&y={Y}&z={Z}", 2, 16);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* https://github.com/opensciencemap/vtm/issues/18
|
||||
* https://developers.google.com/maps/faq
|
||||
*/
|
||||
public static class GoogleMaps extends BitmapTileSource {
|
||||
public GoogleMaps(String hostName) {
|
||||
super(hostName, "/vt/x={X}&y={Y}&z={Z}&s=Galileo&scale=2", 1, 20); //jpeg for sat
|
||||
}
|
||||
}
|
||||
public static Builder<?> IMAGICO_LANDCOVER = BitmapTileSource.builder()
|
||||
.url("http://www.imagico.de/map/tiles/landcover")
|
||||
.tilePath("/{Z}/{X}/{Y}.jpg")
|
||||
.zoomMax(6);
|
||||
|
||||
final static FadeStep[] fadeSteps = new FadeStep[] {
|
||||
new FadeStep(0, 8 - 1, 1, 0.7f),
|
||||
@@ -91,4 +37,38 @@ public class DefaultSources {
|
||||
// fade above zoom max + 2, interpolate 1 to 0
|
||||
new FadeStep(8 - 1, 8 + 1, 0.7f, 0)
|
||||
};
|
||||
|
||||
public static Builder<?> MAPQUEST_AERIAL = BitmapTileSource.builder()
|
||||
.url("http://otile1.mqcdn.com/tiles/1.0.0/sat")
|
||||
.tilePath("/{Z}/{X}/{Y}.jpg")
|
||||
.fadeSteps(fadeSteps)
|
||||
.zoomMax(8);
|
||||
|
||||
public static Builder<?> NE_LANDCOVER = BitmapTileSource.builder()
|
||||
.url("http://opensciencemap.org/tiles/ne")
|
||||
.fadeSteps(fadeSteps)
|
||||
.zoomMax(8);
|
||||
|
||||
public static Builder<?> ARCGIS_RELIEF = BitmapTileSource.builder()
|
||||
.url("http://server.arcgisonline.com/ArcGIS/rest/services" +
|
||||
"/World_Shaded_Relief/MapServer/tile/")
|
||||
.tilePath("{Z}/{Y}/{X}")
|
||||
.zoomMax(13);
|
||||
|
||||
public static Builder<?> HD_HILLSHADE = BitmapTileSource.builder()
|
||||
.url("http://129.206.74.245:8004/tms_hs.ashx")
|
||||
.tilePath("?x={X}&y={Y}&z={Z}")
|
||||
.zoomMin(2)
|
||||
.zoomMax(16);
|
||||
|
||||
/**
|
||||
* https://github.com/opensciencemap/vtm/issues/18
|
||||
* https://developers.google.com/maps/faq
|
||||
*/
|
||||
|
||||
public static Builder<?> GOOGLE_MAPS = BitmapTileSource.builder()
|
||||
.url("INSERT URL")
|
||||
.tilePath("/vt/x={X}&y={Y}&z={Z}&s=Galileo&scale=2")
|
||||
.zoomMin(1)
|
||||
.zoomMax(20);
|
||||
}
|
||||
|
||||
@@ -45,6 +45,10 @@ public class MapFileTileSource extends TileSource {
|
||||
File mapFile;
|
||||
RandomAccessFile mInputFile;
|
||||
|
||||
public MapFileTileSource() {
|
||||
super(0, 18);
|
||||
}
|
||||
|
||||
public boolean setMapFile(String filename) {
|
||||
setOption("file", filename);
|
||||
|
||||
|
||||
@@ -22,12 +22,35 @@ import org.oscim.tiling.source.UrlTileSource;
|
||||
|
||||
public class OSciMap4TileSource extends UrlTileSource {
|
||||
|
||||
public OSciMap4TileSource() {
|
||||
this("http://opensciencemap.org/tiles/vtm");
|
||||
private final static String DEFAULT_URL = "http://opensciencemap.org/tiles/vtm";
|
||||
private final static String DEFAULT_PATH = "/{Z}/{X}/{Y}.vtm";
|
||||
|
||||
public static class Builder<T extends Builder<T>> extends UrlTileSource.Builder<T> {
|
||||
|
||||
public Builder() {
|
||||
super(DEFAULT_URL, DEFAULT_PATH, 0, 17);
|
||||
}
|
||||
|
||||
public OSciMap4TileSource build() {
|
||||
return new OSciMap4TileSource(this);
|
||||
}
|
||||
}
|
||||
|
||||
public OSciMap4TileSource(String url) {
|
||||
super(url, "/{Z}/{X}/{Y}.vtm");
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static Builder<?> builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
protected OSciMap4TileSource(Builder<?> builder) {
|
||||
super(builder);
|
||||
}
|
||||
|
||||
public OSciMap4TileSource() {
|
||||
this(builder());
|
||||
}
|
||||
|
||||
public OSciMap4TileSource(String urlString) {
|
||||
this(builder().url(urlString));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -30,6 +30,10 @@ public class TestTileSource extends TileSource {
|
||||
|
||||
// private boolean mOpenFile = false;
|
||||
|
||||
public TestTileSource() {
|
||||
super(0, 18);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ITileDataSource getDataSource() {
|
||||
return new TileDataSource();
|
||||
|
||||
Reference in New Issue
Block a user