extract ThemeLoader from MapTileLayer
This commit is contained in:
parent
e29c36d6e7
commit
5e9b517f50
@ -3,12 +3,12 @@ package org.oscim.android.test;
|
|||||||
import org.oscim.android.AndroidMapView;
|
import org.oscim.android.AndroidMapView;
|
||||||
import org.oscim.layers.labeling.LabelLayer;
|
import org.oscim.layers.labeling.LabelLayer;
|
||||||
import org.oscim.layers.overlay.BuildingOverlay;
|
import org.oscim.layers.overlay.BuildingOverlay;
|
||||||
import org.oscim.layers.overlay.GenericOverlay;
|
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
||||||
|
import org.oscim.layers.tile.bitmap.HillShadeTiles;
|
||||||
import org.oscim.layers.tile.vector.MapTileLayer;
|
import org.oscim.layers.tile.vector.MapTileLayer;
|
||||||
import org.oscim.renderer.layers.GridRenderLayer;
|
|
||||||
import org.oscim.theme.InternalRenderTheme;
|
import org.oscim.theme.InternalRenderTheme;
|
||||||
import org.oscim.tilesource.TileSource;
|
import org.oscim.tilesource.TileSource;
|
||||||
import org.oscim.tilesource.oscimap4.OSciMap4TileSource;
|
import org.oscim.tilesource.oscimap2.OSciMap2TileSource;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@ -24,23 +24,26 @@ public class MapActivity extends org.oscim.android.MapActivity {
|
|||||||
mAndroidMapView = (AndroidMapView) findViewById(R.id.mapView);
|
mAndroidMapView = (AndroidMapView) findViewById(R.id.mapView);
|
||||||
|
|
||||||
//mMap = mMapView.getMap();
|
//mMap = mMapView.getMap();
|
||||||
//TileSource tileSource = new OSciMap2TileSource();
|
TileSource tileSource = new OSciMap2TileSource();
|
||||||
//tileSource.setOption("url", "http://city.informatik.uni-bremen.de/osci/map-live");
|
tileSource.setOption("url", "http://city.informatik.uni-bremen.de/osci/map-live");
|
||||||
|
|
||||||
TileSource tileSource = new OSciMap4TileSource();
|
//TileSource tileSource = new OSciMap4TileSource();
|
||||||
tileSource.setOption("url", "http://city.informatik.uni-bremen.de/osci/testing");
|
//tileSource.setOption("url", "http://city.informatik.uni-bremen.de/osci/testing");
|
||||||
|
|
||||||
MapTileLayer l = mMapView.setBaseMap(tileSource);
|
MapTileLayer l = mMapView.setBaseMap(tileSource);
|
||||||
|
//mMapView.setDebugSettings(new DebugSettings(false, false, true, false, false));
|
||||||
|
|
||||||
mMapView.getLayerManager().add(new BuildingOverlay(mMapView, l.getTileLayer()));
|
mMapView.getLayerManager().add(new BuildingOverlay(mMapView, l.getTileLayer()));
|
||||||
mMapView.getLayerManager().add(new LabelLayer(mMapView, l.getTileLayer()));
|
mMapView.getLayerManager().add(new LabelLayer(mMapView, l.getTileLayer()));
|
||||||
|
|
||||||
l.setRenderTheme(InternalRenderTheme.DEFAULT);
|
mMapView.setTheme(InternalRenderTheme.DEFAULT);
|
||||||
//l.setRenderTheme(InternalRenderTheme.TRONRENDER);
|
//mMapView.setTheme(InternalRenderTheme.TRONRENDER);
|
||||||
|
|
||||||
|
mMapView.getLayerManager().add(new BitmapTileLayer(mMapView, HillShadeTiles.INSTANCE));
|
||||||
|
|
||||||
|
//mMapView.setBackgroundMap(new BitmapTileLayer(mMapView, StamenWaterTiles.INSTANCE));
|
||||||
//mMap.setBackgroundMap(new BitmapTileLayer(mMap, MapQuestAerial.INSTANCE));
|
//mMap.setBackgroundMap(new BitmapTileLayer(mMap, MapQuestAerial.INSTANCE));
|
||||||
|
//mMapView.getLayerManager().add(new GenericOverlay(mMapView, new GridRenderLayer(mMapView)));
|
||||||
mMapView.getLayerManager().add(new GenericOverlay(mMapView, new GridRenderLayer(mMapView)));
|
|
||||||
|
|
||||||
mAndroidMapView.setClickable(true);
|
mAndroidMapView.setClickable(true);
|
||||||
mAndroidMapView.setFocusable(true);
|
mAndroidMapView.setFocusable(true);
|
||||||
|
@ -10,6 +10,7 @@ import org.oscim.layers.tile.vector.MapTileLayer;
|
|||||||
import org.oscim.renderer.GLRenderer;
|
import org.oscim.renderer.GLRenderer;
|
||||||
import org.oscim.renderer.GLState;
|
import org.oscim.renderer.GLState;
|
||||||
import org.oscim.theme.InternalRenderTheme;
|
import org.oscim.theme.InternalRenderTheme;
|
||||||
|
import org.oscim.theme.ThemeLoader;
|
||||||
import org.oscim.tilesource.TileSource;
|
import org.oscim.tilesource.TileSource;
|
||||||
import org.oscim.view.MapRenderCallback;
|
import org.oscim.view.MapRenderCallback;
|
||||||
import org.oscim.view.MapView;
|
import org.oscim.view.MapView;
|
||||||
@ -69,7 +70,7 @@ public class GdxMap implements ApplicationListener, MapRenderCallback {
|
|||||||
// TileSource tileSource = new TestTileSource();
|
// TileSource tileSource = new TestTileSource();
|
||||||
|
|
||||||
mMapLayer = mMapView.setBaseMap(mTileSource);
|
mMapLayer = mMapView.setBaseMap(mTileSource);
|
||||||
mMapLayer.setRenderTheme(InternalRenderTheme.DEFAULT);
|
mMapView.setTheme(InternalRenderTheme.DEFAULT);
|
||||||
|
|
||||||
mMapView.getLayerManager().add(new BuildingOverlay(mMapView, mMapLayer.getTileLayer()));
|
mMapView.getLayerManager().add(new BuildingOverlay(mMapView, mMapLayer.getTileLayer()));
|
||||||
mMapView.getLayerManager().add(new LabelLayer(mMapView, mMapLayer.getTileLayer()));
|
mMapView.getLayerManager().add(new LabelLayer(mMapView, mMapLayer.getTileLayer()));
|
||||||
@ -87,8 +88,9 @@ public class GdxMap implements ApplicationListener, MapRenderCallback {
|
|||||||
|
|
||||||
mMapView.getMapViewPosition().setViewport(w, h);
|
mMapView.getMapViewPosition().setViewport(w, h);
|
||||||
MapPosition p = new MapPosition();
|
MapPosition p = new MapPosition();
|
||||||
p.setZoomLevel(17);
|
p.setZoomLevel(3);
|
||||||
p.setPosition(53.08, 8.83);
|
//p.setPosition(53.08, 8.83);
|
||||||
|
p.setPosition(0.0, 0.0);
|
||||||
mMapView.setMapPosition(p);
|
mMapView.setMapPosition(p);
|
||||||
|
|
||||||
mMapRenderer.onSurfaceCreated();
|
mMapRenderer.onSurfaceCreated();
|
||||||
@ -264,18 +266,18 @@ public class GdxMap implements ApplicationListener, MapRenderCallback {
|
|||||||
mMapView.updateMap(true);
|
mMapView.updateMap(true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Input.Keys.R:
|
// case Input.Keys.R:
|
||||||
mMapLayer.reloadTheme();
|
// mMapLayer.reloadTheme();
|
||||||
mMapView.updateMap(false);
|
// mMapView.updateMap(false);
|
||||||
break;
|
// break;
|
||||||
|
|
||||||
case Input.Keys.D:
|
case Input.Keys.D:
|
||||||
mMapLayer.setRenderTheme(InternalRenderTheme.DEFAULT);
|
mMapView.setTheme(InternalRenderTheme.DEFAULT);
|
||||||
mMapView.updateMap(false);
|
mMapView.updateMap(false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Input.Keys.T:
|
case Input.Keys.T:
|
||||||
mMapLayer.setRenderTheme(InternalRenderTheme.TRONRENDER);
|
mMapView.setTheme(InternalRenderTheme.TRONRENDER);
|
||||||
mMapView.updateMap(false);
|
mMapView.updateMap(false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -14,32 +14,29 @@
|
|||||||
*/
|
*/
|
||||||
package org.oscim.layers.tile.vector;
|
package org.oscim.layers.tile.vector;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
|
|
||||||
import org.oscim.backend.CanvasAdapter;
|
|
||||||
import org.oscim.backend.Log;
|
import org.oscim.backend.Log;
|
||||||
import org.oscim.core.GeoPoint;
|
import org.oscim.core.GeoPoint;
|
||||||
import org.oscim.core.MapPosition;
|
import org.oscim.core.MapPosition;
|
||||||
import org.oscim.layers.tile.TileLayer;
|
import org.oscim.layers.tile.TileLayer;
|
||||||
|
import org.oscim.layers.tile.TileLoader;
|
||||||
import org.oscim.layers.tile.TileManager;
|
import org.oscim.layers.tile.TileManager;
|
||||||
import org.oscim.renderer.GLRenderer;
|
|
||||||
import org.oscim.theme.ExternalRenderTheme;
|
|
||||||
import org.oscim.theme.IRenderTheme;
|
import org.oscim.theme.IRenderTheme;
|
||||||
import org.oscim.theme.InternalRenderTheme;
|
|
||||||
import org.oscim.theme.RenderThemeHandler;
|
|
||||||
import org.oscim.theme.Theme;
|
|
||||||
import org.oscim.tilesource.ITileDataSource;
|
import org.oscim.tilesource.ITileDataSource;
|
||||||
import org.oscim.tilesource.MapInfo;
|
import org.oscim.tilesource.MapInfo;
|
||||||
import org.oscim.tilesource.TileSource;
|
import org.oscim.tilesource.TileSource;
|
||||||
import org.oscim.tilesource.TileSource.OpenResult;
|
import org.oscim.tilesource.TileSource.OpenResult;
|
||||||
import org.oscim.utils.IOUtils;
|
|
||||||
import org.oscim.view.MapView;
|
import org.oscim.view.MapView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The vector-tile-map layer. This class manages instances of
|
||||||
|
* {@link MapTileLoader} that load and assemble vector tiles
|
||||||
|
* for rendering.
|
||||||
|
*/
|
||||||
public class MapTileLayer extends TileLayer<MapTileLoader> {
|
public class MapTileLayer extends TileLayer<MapTileLoader> {
|
||||||
private final static String TAG = MapTileLayer.class.getName();
|
private final static String TAG = MapTileLayer.class.getName();
|
||||||
|
|
||||||
|
private TileSource mTileSource;
|
||||||
|
|
||||||
public MapTileLayer(MapView mapView) {
|
public MapTileLayer(MapView mapView) {
|
||||||
super(mapView);
|
super(mapView);
|
||||||
}
|
}
|
||||||
@ -49,15 +46,10 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
|
|||||||
return new MapTileLoader(tm);
|
return new MapTileLoader(tm);
|
||||||
}
|
}
|
||||||
|
|
||||||
private TileSource mTileSource;
|
|
||||||
private String mRenderTheme;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the TileSource for this MapView.
|
* Sets the {@link TileSource} used by {@link TileLoader}.
|
||||||
*
|
*
|
||||||
* @param tileSource
|
* @return true when new TileSource was set (has changed)
|
||||||
* the new TileSource.
|
|
||||||
* @return true if TileSource changed
|
|
||||||
*/
|
*/
|
||||||
public boolean setTileSource(TileSource tileSource) {
|
public boolean setTileSource(TileSource tileSource) {
|
||||||
|
|
||||||
@ -93,6 +85,21 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set {@link IRenderTheme} used by {@link TileLoader}
|
||||||
|
*/
|
||||||
|
public void setRenderTheme(IRenderTheme theme) {
|
||||||
|
pauseLoaders(true);
|
||||||
|
|
||||||
|
for (MapTileLoader g : mTileLoader)
|
||||||
|
g.setRenderTheme(theme);
|
||||||
|
|
||||||
|
resumeLoaders();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
public MapPosition getMapFileCenter() {
|
public MapPosition getMapFileCenter() {
|
||||||
if (mTileSource == null)
|
if (mTileSource == null)
|
||||||
return null;
|
return null;
|
||||||
@ -113,105 +120,11 @@ public class MapTileLayer extends TileLayer<MapTileLoader> {
|
|||||||
mapPosition.setPosition(startPos);
|
mapPosition.setPosition(startPos);
|
||||||
|
|
||||||
if (mapInfo.startZoomLevel == null)
|
if (mapInfo.startZoomLevel == null)
|
||||||
mapPosition.setZoomLevel(12);
|
mapPosition.setZoomLevel(2);
|
||||||
else
|
else
|
||||||
mapPosition.setZoomLevel((mapInfo.startZoomLevel).byteValue());
|
mapPosition.setZoomLevel((mapInfo.startZoomLevel).byteValue());
|
||||||
|
|
||||||
return mapPosition;
|
return mapPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRenderTheme() {
|
|
||||||
return mRenderTheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the internal theme which is used for rendering the map.
|
|
||||||
*
|
|
||||||
* @param internalRenderTheme
|
|
||||||
* the internal rendering theme.
|
|
||||||
* @return ...
|
|
||||||
* @throws IllegalArgumentException
|
|
||||||
* if the supplied internalRenderTheme is null.
|
|
||||||
*/
|
|
||||||
public boolean setRenderTheme(InternalRenderTheme internalRenderTheme) {
|
|
||||||
if (internalRenderTheme == null) {
|
|
||||||
throw new IllegalArgumentException("render theme must not be null");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (internalRenderTheme.name() == mRenderTheme)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
boolean ret = setRenderTheme((Theme) internalRenderTheme);
|
|
||||||
if (ret)
|
|
||||||
mRenderTheme = internalRenderTheme.name();
|
|
||||||
|
|
||||||
mMapView.clearMap();
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean reloadTheme(){
|
|
||||||
|
|
||||||
Theme t = InternalRenderTheme.valueOf(mRenderTheme);
|
|
||||||
if (t == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
boolean ret = setRenderTheme(t);
|
|
||||||
|
|
||||||
mMapView.clearMap();
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the theme file which is used for rendering the map.
|
|
||||||
*
|
|
||||||
* @param renderThemePath
|
|
||||||
* the path to the XML file which defines the rendering theme.
|
|
||||||
* @throws IllegalArgumentException
|
|
||||||
* if the supplied internalRenderTheme is null.
|
|
||||||
* @throws FileNotFoundException
|
|
||||||
* if the supplied file does not exist, is a directory or cannot
|
|
||||||
* be read.
|
|
||||||
*/
|
|
||||||
public void setRenderTheme(String renderThemePath) throws FileNotFoundException {
|
|
||||||
if (renderThemePath == null) {
|
|
||||||
throw new IllegalArgumentException("render theme path must not be null");
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean ret = setRenderTheme(new ExternalRenderTheme(renderThemePath));
|
|
||||||
if (ret)
|
|
||||||
mRenderTheme = renderThemePath;
|
|
||||||
|
|
||||||
mMapView.clearMap();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean setRenderTheme(Theme theme) {
|
|
||||||
|
|
||||||
pauseLoaders(true);
|
|
||||||
|
|
||||||
InputStream inputStream = null;
|
|
||||||
try {
|
|
||||||
inputStream = theme.getRenderThemeAsStream();
|
|
||||||
IRenderTheme t = RenderThemeHandler.getRenderTheme(inputStream);
|
|
||||||
t.scaleTextSize(1 + (CanvasAdapter.dpi / 240 - 1) * 0.5f);
|
|
||||||
|
|
||||||
// FIXME !!!
|
|
||||||
GLRenderer.setRenderTheme(t);
|
|
||||||
|
|
||||||
for (MapTileLoader g : mTileLoader)
|
|
||||||
g.setRenderTheme(t);
|
|
||||||
return true;
|
|
||||||
} catch (IOException e) {
|
|
||||||
Log.e(TAG, e.getMessage());
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
IOUtils.closeQuietly(inputStream);
|
|
||||||
resumeLoaders();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
72
vtm/src/org/oscim/theme/ThemeLoader.java
Normal file
72
vtm/src/org/oscim/theme/ThemeLoader.java
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2013 Hannes Janetzek
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify it under the
|
||||||
|
* terms of the GNU Lesser General Public License as published by the Free Software
|
||||||
|
* Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public License along with
|
||||||
|
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.oscim.theme;
|
||||||
|
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import org.oscim.backend.CanvasAdapter;
|
||||||
|
import org.oscim.backend.Log;
|
||||||
|
import org.oscim.utils.IOUtils;
|
||||||
|
|
||||||
|
public class ThemeLoader {
|
||||||
|
private final static String TAG = ThemeLoader.class.getName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load internal theme, see {@link InternalRenderTheme}.
|
||||||
|
*
|
||||||
|
* @param internalRenderTheme ...
|
||||||
|
* @return ...
|
||||||
|
*/
|
||||||
|
public static IRenderTheme load(InternalRenderTheme internalRenderTheme) {
|
||||||
|
return load((Theme) internalRenderTheme);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load theme from XML file.
|
||||||
|
*
|
||||||
|
* @param renderThemePath ..
|
||||||
|
* @return ...
|
||||||
|
* @throws FileNotFoundException ...
|
||||||
|
*/
|
||||||
|
public static IRenderTheme load(String renderThemePath) throws FileNotFoundException {
|
||||||
|
return load(new ExternalRenderTheme(renderThemePath));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IRenderTheme load(Theme theme) {
|
||||||
|
|
||||||
|
InputStream inputStream = null;
|
||||||
|
try {
|
||||||
|
inputStream = theme.getRenderThemeAsStream();
|
||||||
|
IRenderTheme t = RenderThemeHandler.getRenderTheme(inputStream);
|
||||||
|
t.scaleTextSize(1 + (CanvasAdapter.dpi / 240 - 1) * 0.5f);
|
||||||
|
|
||||||
|
return t;
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.e(TAG, e.getMessage());
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
IOUtils.closeQuietly(inputStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -16,6 +16,7 @@ package org.oscim.view;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.oscim.backend.Log;
|
||||||
import org.oscim.core.BoundingBox;
|
import org.oscim.core.BoundingBox;
|
||||||
import org.oscim.core.GeoPoint;
|
import org.oscim.core.GeoPoint;
|
||||||
import org.oscim.core.MapPosition;
|
import org.oscim.core.MapPosition;
|
||||||
@ -25,10 +26,16 @@ import org.oscim.layers.overlay.Overlay;
|
|||||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
||||||
import org.oscim.layers.tile.vector.MapTileLayer;
|
import org.oscim.layers.tile.vector.MapTileLayer;
|
||||||
import org.oscim.layers.tile.vector.MapTileLoader;
|
import org.oscim.layers.tile.vector.MapTileLoader;
|
||||||
|
import org.oscim.renderer.GLRenderer;
|
||||||
|
import org.oscim.theme.IRenderTheme;
|
||||||
|
import org.oscim.theme.InternalRenderTheme;
|
||||||
|
import org.oscim.theme.ThemeLoader;
|
||||||
import org.oscim.tilesource.TileSource;
|
import org.oscim.tilesource.TileSource;
|
||||||
|
|
||||||
public class MapView {
|
public class MapView {
|
||||||
|
|
||||||
|
private static final String TAG = MapView.class.getName();
|
||||||
|
|
||||||
//public static boolean enableClosePolygons;
|
//public static boolean enableClosePolygons;
|
||||||
private final LayerManager mLayerManager;
|
private final LayerManager mLayerManager;
|
||||||
private final MapViewPosition mMapViewPosition;
|
private final MapViewPosition mMapViewPosition;
|
||||||
@ -50,21 +57,21 @@ public class MapView {
|
|||||||
|
|
||||||
mLayerManager.add(0, new MapEventLayer(this));
|
mLayerManager.add(0, new MapEventLayer(this));
|
||||||
}
|
}
|
||||||
|
private MapTileLayer mBaseLayer;
|
||||||
|
|
||||||
public MapTileLayer setBaseMap(TileSource tileSource) {
|
public MapTileLayer setBaseMap(TileSource tileSource) {
|
||||||
MapTileLayer baseLayer = new MapTileLayer(this);
|
mBaseLayer = new MapTileLayer(this);
|
||||||
|
|
||||||
baseLayer.setTileSource(tileSource);
|
|
||||||
|
|
||||||
|
mBaseLayer.setTileSource(tileSource);
|
||||||
//mLayerManager.add(0, new MapEventLayer(this));
|
//mLayerManager.add(0, new MapEventLayer(this));
|
||||||
|
|
||||||
mLayerManager.add(1, baseLayer);
|
mLayerManager.add(1, mBaseLayer);
|
||||||
|
|
||||||
//mRotationEnabled = true;
|
//mRotationEnabled = true;
|
||||||
|
|
||||||
//mLayerManager.add(new GenericOverlay(this, new GridRenderLayer(this)));
|
//mLayerManager.add(new GenericOverlay(this, new GridRenderLayer(this)));
|
||||||
|
|
||||||
return baseLayer;
|
return mBaseLayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBackgroundMap(BitmapTileLayer tileLayer) {
|
public void setBackgroundMap(BitmapTileLayer tileLayer) {
|
||||||
@ -77,6 +84,21 @@ public class MapView {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setTheme(InternalRenderTheme theme) {
|
||||||
|
if (mBaseLayer == null){
|
||||||
|
Log.e(TAG, "No base layer set");
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
IRenderTheme t = ThemeLoader.load(theme);
|
||||||
|
if (t == null){
|
||||||
|
Log.e(TAG, "Invalid theme");
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
mBaseLayer.setRenderTheme(t);
|
||||||
|
GLRenderer.setRenderTheme(t);
|
||||||
|
}
|
||||||
|
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
mLayerManager.destroy();
|
mLayerManager.destroy();
|
||||||
}
|
}
|
||||||
@ -110,7 +132,7 @@ public class MapView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do not call directly. This function is run on main-loop
|
* Do not call directly! This function is run on main-loop
|
||||||
* before rendering a frame.
|
* before rendering a frame.
|
||||||
*/
|
*/
|
||||||
public void updateLayers() {
|
public void updateLayers() {
|
||||||
@ -199,4 +221,6 @@ public class MapView {
|
|||||||
public int getHeight() {
|
public int getHeight() {
|
||||||
return mMapRenderCallback.getHeight();
|
return mMapRenderCallback.getHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user