pass VectorTileLayer to LabelLayer and BuildingLayer

This commit is contained in:
Hannes Janetzek 2014-02-07 17:40:30 +01:00
parent db780d9939
commit dd954e3416
5 changed files with 16 additions and 17 deletions

View File

@ -101,7 +101,7 @@ public class MapsforgeMapActivity extends MapActivity {
VectorTileLayer l = mMap.setBaseMap(mTileSource);
mMap.setTheme(InternalRenderTheme.DEFAULT);
mMap.getLayers().add(new LabelLayer(mMap, l.getTileRenderer()));
mMap.getLayers().add(new LabelLayer(mMap, l));
MapInfo info = mTileSource.getMapInfo();
if (info.boundingBox != null) {

View File

@ -15,12 +15,11 @@
* this program. If not, see <http://www.gnu.org/licenses/>.
*/package org.oscim.android.test;
import org.oscim.android.MapScaleBar;
import org.oscim.layers.TileGridLayer;
import org.oscim.layers.tile.vector.BuildingLayer;
import org.oscim.layers.tile.vector.labeling.LabelLayer;
import org.oscim.map.Layers;
import org.oscim.theme.InternalRenderTheme;
import org.oscim.tiling.TileRenderer;
import android.os.Bundle;
import android.view.Menu;
@ -32,19 +31,17 @@ public class SimpleMapActivity extends BaseMapActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TileRenderer l = mBaseLayer.getTileRenderer();
Layers layers = mMap.getLayers();
layers.add(new BuildingLayer(mMap, l));
layers.add(new LabelLayer(mMap, l));
layers.add(new BuildingLayer(mMap, mBaseLayer));
layers.add(new LabelLayer(mMap, mBaseLayer));
//layers.add(new TileGridLayer(mMap));
layers.add(new MapScaleBar(mMapView));
layers.add(new TileGridLayer(mMap));
mMap.setTheme(InternalRenderTheme.DEFAULT);
//mMap.setTheme(InternalRenderTheme.TRONRENDER);
//mMap.setTheme(InternalRenderTheme.OSMARENDER);
mMap.setMapPosition(53.08, 8.83, Math.pow(2, 14));
mMap.setMapPosition(53.08, 8.83, Math.pow(2, 10));
}
@Override

View File

@ -136,10 +136,10 @@ public abstract class GdxMap implements ApplicationListener {
mMap.setTheme(InternalRenderTheme.DEFAULT);
if (buildings)
layers.add(new BuildingLayer(mMap, mMapLayer.getTileRenderer()));
layers.add(new BuildingLayer(mMap, mMapLayer));
if (labels)
layers.add(new LabelLayer(mMap, mMapLayer.getTileRenderer()));
layers.add(new LabelLayer(mMap, mMapLayer));
}
if (tileGrid)

View File

@ -21,7 +21,6 @@ import org.oscim.layers.Layer;
import org.oscim.map.Map;
import org.oscim.renderer.ExtrusionRenderer;
import org.oscim.renderer.MapRenderer.Matrices;
import org.oscim.tiling.TileRenderer;
import org.oscim.utils.FastMath;
public class BuildingLayer extends Layer {
@ -29,9 +28,9 @@ public class BuildingLayer extends Layer {
final ExtrusionRenderer mExtLayer;
public BuildingLayer(Map map, TileRenderer tileRenderer) {
public BuildingLayer(Map map, VectorTileLayer tileLayer) {
super(map);
mExtLayer = new ExtrusionRenderer(tileRenderer) {
mExtLayer = new ExtrusionRenderer(tileLayer.getTileRenderer()) {
private long mStartTime;
@Override

View File

@ -21,8 +21,9 @@ import org.oscim.event.EventDispatcher.Event;
import org.oscim.event.EventDispatcher.Listener;
import org.oscim.event.MotionEvent;
import org.oscim.layers.Layer;
import org.oscim.layers.tile.vector.VectorTileLayer;
import org.oscim.map.Map;
import org.oscim.tiling.TileRenderer;
import org.oscim.tiling.MapTile;
import org.oscim.tiling.TileManager;
import org.oscim.utils.async.SimpleWorker;
import org.slf4j.Logger;
@ -30,6 +31,7 @@ import org.slf4j.LoggerFactory;
public class LabelLayer extends Layer implements Map.InputListener, Map.UpdateListener,
Listener<MapTile> {
static final Logger log = LoggerFactory.getLogger(LabelLayer.class);
private final static long MAX_RELABEL_DELAY = 100;
@ -37,10 +39,11 @@ public class LabelLayer extends Layer implements Map.InputListener, Map.UpdateLi
private final LabelPlacement mLabelPlacer;
private final Worker mWorker;
public LabelLayer(Map map, TileRenderer tileRenderer) {
public LabelLayer(Map map, VectorTileLayer l) {
super(map);
l.getManager().events.bind(this);
mLabelPlacer = new LabelPlacement(map, tileRenderer);
mLabelPlacer = new LabelPlacement(map, l.getTileRenderer());
mWorker = new Worker(map);
mRenderer = new TextRenderer(mWorker);
}