playground tests
This commit is contained in:
parent
a8400dd48a
commit
cb3296ebdd
@ -23,6 +23,8 @@ import org.oscim.core.Tile;
|
|||||||
import org.oscim.tiling.TileSource;
|
import org.oscim.tiling.TileSource;
|
||||||
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
||||||
import org.oscim.utils.FastMath;
|
import org.oscim.utils.FastMath;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.badlogic.gdx.backends.jglfw.JglfwApplication;
|
import com.badlogic.gdx.backends.jglfw.JglfwApplication;
|
||||||
import com.badlogic.gdx.backends.jglfw.JglfwApplicationConfiguration;
|
import com.badlogic.gdx.backends.jglfw.JglfwApplicationConfiguration;
|
||||||
@ -31,6 +33,8 @@ import com.badlogic.gdx.utils.SharedLibraryLoader;
|
|||||||
|
|
||||||
public class GdxMapApp extends GdxMap {
|
public class GdxMapApp extends GdxMap {
|
||||||
|
|
||||||
|
public static final Logger log = LoggerFactory.getLogger(GdxMapApp.class);
|
||||||
|
|
||||||
static class GdxGL20Wrapper extends JglfwGL20 implements GL20 {
|
static class GdxGL20Wrapper extends JglfwGL20 implements GL20 {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -54,13 +54,13 @@ public class HairLineTest extends GdxMap {
|
|||||||
.build());
|
.build());
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean setup() {
|
public boolean setup() {
|
||||||
//ll.roundCap = true;
|
//ll.roundCap = true;
|
||||||
return super.setup();
|
return super.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void update(GLViewport v) {
|
public void update(GLViewport v) {
|
||||||
if (!init) {
|
if (!init) {
|
||||||
mMapPosition.copy(v.pos);
|
mMapPosition.copy(v.pos);
|
||||||
init = true;
|
init = true;
|
||||||
|
@ -185,7 +185,7 @@ public class LineRenderTest extends GdxMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized void update(GLViewport v) {
|
public synchronized void update(GLViewport v) {
|
||||||
|
|
||||||
if (mMapPosition.scale == 0)
|
if (mMapPosition.scale == 0)
|
||||||
mMapPosition.copy(v.pos);
|
mMapPosition.copy(v.pos);
|
||||||
|
@ -42,12 +42,12 @@ public class LineTest extends GdxMap {
|
|||||||
boolean init;
|
boolean init;
|
||||||
|
|
||||||
LineBucket ll = buckets.addLineBucket(0,
|
LineBucket ll = buckets.addLineBucket(0,
|
||||||
new LineStyle(Color.fade(Color.CYAN, 0.5f), 1.5f));
|
new LineStyle(Color.fade(Color.CYAN, 0.5f), 1.5f));
|
||||||
|
|
||||||
GeometryBuffer g = new GeometryBuffer(10, 1);
|
GeometryBuffer g = new GeometryBuffer(10, 1);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void update(GLViewport v) {
|
public void update(GLViewport v) {
|
||||||
if (!init) {
|
if (!init) {
|
||||||
mMapPosition.copy(v.pos);
|
mMapPosition.copy(v.pos);
|
||||||
init = true;
|
init = true;
|
||||||
@ -82,13 +82,13 @@ public class LineTest extends GdxMap {
|
|||||||
buckets.clear();
|
buckets.clear();
|
||||||
buckets.set(ll);
|
buckets.set(ll);
|
||||||
g.clear();
|
g.clear();
|
||||||
for (int i = 0; i < 60; i++) {
|
//for (int i = 0; i < 60; i++) {
|
||||||
g.startLine();
|
g.startLine();
|
||||||
g.addPoint(-1, 0);
|
g.addPoint(-1, 0);
|
||||||
g.addPoint(0, 0);
|
g.addPoint(0, 0);
|
||||||
g.addPoint((float) Math.cos(Math.toRadians(angle)),
|
g.addPoint((float) Math.cos(Math.toRadians(angle)),
|
||||||
(float) Math.sin(Math.toRadians(angle)));
|
(float) Math.sin(Math.toRadians(angle)));
|
||||||
}
|
//}
|
||||||
|
|
||||||
g.scale(100, 100);
|
g.scale(100, 100);
|
||||||
|
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
package org.oscim.test;
|
package org.oscim.test;
|
||||||
|
|
||||||
import org.oscim.gdx.GdxMap;
|
|
||||||
import org.oscim.gdx.GdxMapApp;
|
import org.oscim.gdx.GdxMapApp;
|
||||||
import org.oscim.layers.tile.buildings.BuildingLayer;
|
import org.oscim.layers.tile.buildings.BuildingLayer;
|
||||||
import org.oscim.layers.tile.vector.VectorTileLayer;
|
import org.oscim.layers.tile.vector.VectorTileLayer;
|
||||||
import org.oscim.layers.tile.vector.labeling.LabelLayer;
|
import org.oscim.layers.tile.vector.labeling.LabelLayer;
|
||||||
|
import org.oscim.map.Map;
|
||||||
import org.oscim.theme.VtmThemes;
|
import org.oscim.theme.VtmThemes;
|
||||||
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
public class MapTest extends GdxMap {
|
public class MapTest extends GdxMapApp {
|
||||||
|
|
||||||
final Logger log = LoggerFactory.getLogger(MeshTest.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createLayers() {
|
public void createLayers() {
|
||||||
|
Map map = getMap();
|
||||||
|
|
||||||
VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource());
|
VectorTileLayer l = map.setBaseMap(new OSciMap4TileSource());
|
||||||
mMap.setTheme(VtmThemes.DEFAULT);
|
|
||||||
mMap.layers().add(new BuildingLayer(mMap, l));
|
|
||||||
mMap.layers().add(new LabelLayer(mMap, l));
|
|
||||||
|
|
||||||
mMap.setMapPosition(53.08, 8.82, 1 << 17);
|
map.layers().add(new BuildingLayer(map, l));
|
||||||
|
map.layers().add(new LabelLayer(map, l));
|
||||||
|
|
||||||
|
map.setTheme(VtmThemes.DEFAULT);
|
||||||
|
map.setMapPosition(53.075, 8.808, 1 << 17);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
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.oscimap4.OSciMap4TileSource;
|
|
||||||
|
|
||||||
public class MeshTest extends GdxMapApp {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void createLayers() {
|
|
||||||
//MapRenderer.setBackgroundColor(0xf0f0f0);
|
|
||||||
|
|
||||||
//VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource());
|
|
||||||
//mMap.setTheme(VtmThemes.DEFAULT);
|
|
||||||
|
|
||||||
mMap.setBaseMap(new BitmapTileLayer(mMap, STAMEN_TONER.build()));
|
|
||||||
|
|
||||||
TileSource ts = new OSciMap4TileSource("http://opensciencemap.org/tiles/s3db");
|
|
||||||
S3DBLayer tl = new S3DBLayer(mMap, ts);
|
|
||||||
|
|
||||||
//BuildingLayer tl = new BuildingLayer(mMap, l);
|
|
||||||
|
|
||||||
//OffscreenRenderer or = new OffscreenRenderer(mMap.getWidth(),
|
|
||||||
// mMap.getHeight());
|
|
||||||
//or.setRenderer(tl.getRenderer());
|
|
||||||
|
|
||||||
mMap.layers().add(tl);
|
|
||||||
|
|
||||||
//mMap.layers().add(new GenericLayer(mMap, or));
|
|
||||||
|
|
||||||
//mMap.layers().add(new LabelLayer(mMap, l));
|
|
||||||
|
|
||||||
//mMap.setMapPosition(7.707, 81.689, 1 << 17);
|
|
||||||
|
|
||||||
mMap.setMapPosition(53.08, 8.82, 1 << 17);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
init();
|
|
||||||
run(new MeshTest(), null, 400);
|
|
||||||
}
|
|
||||||
}
|
|
36
vtm-playground/src/org/oscim/test/S3DBLayerTest.java
Normal file
36
vtm-playground/src/org/oscim/test/S3DBLayerTest.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package org.oscim.test;
|
||||||
|
|
||||||
|
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 S3DBLayerTest extends GdxMapApp {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createLayers() {
|
||||||
|
|
||||||
|
//VectorTileLayer l = mMap.setBaseMap(new OSciMap4TileSource());
|
||||||
|
//mMap.setTheme(VtmThemes.DEFAULT);
|
||||||
|
|
||||||
|
mMap.setBaseMap(new BitmapTileLayer(mMap, DefaultSources.STAMEN_TONER.build()));
|
||||||
|
|
||||||
|
TileSource ts = OSciMap4TileSource
|
||||||
|
.builder()
|
||||||
|
.url("http://opensciencemap.org/tiles/s3db")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
S3DBLayer tl = new S3DBLayer(mMap, ts);
|
||||||
|
mMap.layers().add(tl);
|
||||||
|
|
||||||
|
mMap.setMapPosition(53.08, 8.82, 1 << 17);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
init();
|
||||||
|
run(new S3DBLayerTest(), null, 400);
|
||||||
|
}
|
||||||
|
}
|
@ -1,70 +0,0 @@
|
|||||||
package org.oscim.test;
|
|
||||||
|
|
||||||
import static java.lang.System.out;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import org.oscim.core.GeometryBuffer;
|
|
||||||
import org.oscim.core.Tile;
|
|
||||||
import org.oscim.utils.Tessellator;
|
|
||||||
|
|
||||||
import com.badlogic.gdx.utils.SharedLibraryLoader;
|
|
||||||
|
|
||||||
public class TessellatorTest extends Tessellator{
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
new SharedLibraryLoader().load("vtm-jni");
|
|
||||||
|
|
||||||
GeometryBuffer e = new GeometryBuffer(128, 3);
|
|
||||||
|
|
||||||
int size = Tile.SIZE;
|
|
||||||
|
|
||||||
float x1 = -1;
|
|
||||||
float y1 = -1;
|
|
||||||
float x2 = size + 1;
|
|
||||||
float y2 = size + 1;
|
|
||||||
|
|
||||||
// always clear geometry before starting
|
|
||||||
// a different type.
|
|
||||||
e.clear();
|
|
||||||
e.startPolygon();
|
|
||||||
e.addPoint(x1, y1);
|
|
||||||
e.addPoint(x2, y1);
|
|
||||||
e.addPoint(x2, y2);
|
|
||||||
e.addPoint(x1, y2);
|
|
||||||
|
|
||||||
y1 = 5;
|
|
||||||
y2 = size - 5;
|
|
||||||
x1 = 5;
|
|
||||||
x2 = size - 5;
|
|
||||||
|
|
||||||
e.startHole();
|
|
||||||
e.addPoint(x1, y1);
|
|
||||||
e.addPoint(x2, y1);
|
|
||||||
e.addPoint(x2, y2);
|
|
||||||
e.addPoint(x1, y2);
|
|
||||||
|
|
||||||
addMesh(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void addMesh(GeometryBuffer geom) {
|
|
||||||
int numRings = 2;
|
|
||||||
int[] result = new int[2];
|
|
||||||
|
|
||||||
long ctx = Tessellator.tessellate(geom.points, 0, geom.index, 0, numRings, result);
|
|
||||||
out.println("ok" + Arrays.toString(result));
|
|
||||||
|
|
||||||
short[] coordinates = new short[100];
|
|
||||||
|
|
||||||
while (Tessellator.tessGetVertices(ctx, coordinates, 2) > 0) {
|
|
||||||
out.println(Arrays.toString(coordinates));
|
|
||||||
}
|
|
||||||
|
|
||||||
while (Tessellator.tessGetIndices(ctx, coordinates) > 0) {
|
|
||||||
out.println(Arrays.toString(coordinates));
|
|
||||||
}
|
|
||||||
|
|
||||||
Tessellator.tessFinish(ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
public class ThemeBuilderTest extends GdxMap {
|
public class ThemeBuilderTest extends GdxMap {
|
||||||
|
|
||||||
final Logger log = LoggerFactory.getLogger(MeshTest.class);
|
final Logger log = LoggerFactory.getLogger(S3DBLayerTest.class);
|
||||||
|
|
||||||
static class MyTheme extends ThemeBuilder {
|
static class MyTheme extends ThemeBuilder {
|
||||||
public MyTheme() {
|
public MyTheme() {
|
||||||
|
@ -1,36 +1,44 @@
|
|||||||
package org.oscim.test;
|
package org.oscim.test;
|
||||||
|
|
||||||
import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER;
|
import org.oscim.backend.canvas.Color;
|
||||||
|
import org.oscim.core.GeometryBuffer.GeometryType;
|
||||||
|
import org.oscim.core.MapElement;
|
||||||
|
import org.oscim.core.MapPosition;
|
||||||
import org.oscim.core.MercatorProjection;
|
import org.oscim.core.MercatorProjection;
|
||||||
import org.oscim.gdx.GdxMap;
|
import org.oscim.event.Event;
|
||||||
import org.oscim.gdx.GdxMapApp;
|
import org.oscim.gdx.GdxMapApp;
|
||||||
|
import org.oscim.layers.TileGridLayer;
|
||||||
import org.oscim.layers.tile.MapTile;
|
import org.oscim.layers.tile.MapTile;
|
||||||
import org.oscim.layers.tile.MapTile.TileNode;
|
import org.oscim.layers.tile.MapTile.TileNode;
|
||||||
import org.oscim.layers.tile.TileLoader;
|
import org.oscim.layers.tile.TileLoader;
|
||||||
import org.oscim.layers.tile.TileManager;
|
import org.oscim.layers.tile.TileManager;
|
||||||
import org.oscim.layers.tile.TileSet;
|
import org.oscim.layers.tile.TileSet;
|
||||||
import org.oscim.layers.tile.VectorTileRenderer;
|
import org.oscim.layers.tile.VectorTileRenderer;
|
||||||
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
|
|
||||||
import org.oscim.layers.tile.vector.VectorTileLayer;
|
import org.oscim.layers.tile.vector.VectorTileLayer;
|
||||||
import org.oscim.layers.tile.vector.VectorTileLoader;
|
import org.oscim.layers.tile.vector.VectorTileLoader;
|
||||||
|
import org.oscim.layers.tile.vector.labeling.LabelLayer;
|
||||||
|
import org.oscim.map.Map;
|
||||||
import org.oscim.renderer.MapRenderer;
|
import org.oscim.renderer.MapRenderer;
|
||||||
import org.oscim.theme.DebugTheme;
|
import org.oscim.theme.VtmThemes;
|
||||||
import org.oscim.tiling.TileSource;
|
import org.oscim.tiling.TileSource;
|
||||||
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
|
||||||
|
|
||||||
public class TileRenderTest extends GdxMap {
|
public class TileRenderTest extends GdxMapApp {
|
||||||
|
|
||||||
static boolean loadOneTile = true;
|
static boolean loadOneTile = true;
|
||||||
static int tileX = 34365 >> 2;
|
// static int tileX = 34365 >> 2;
|
||||||
static int tileY = 21333 >> 2;
|
// static int tileY = 21333 >> 2;
|
||||||
|
// static byte tileZ = 14;
|
||||||
|
|
||||||
|
static int tileX = 68747 >> 3;
|
||||||
|
static int tileY = 42648 >> 3;
|
||||||
static byte tileZ = 14;
|
static byte tileZ = 14;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createLayers() {
|
public void createLayers() {
|
||||||
final TileManager tileManager;
|
|
||||||
|
|
||||||
MapRenderer.setBackgroundColor(0xff888888);
|
mMap.layers().add(new TileGridLayer(mMap, Color.LTGRAY, 1.2f, 1));
|
||||||
|
|
||||||
MapTile tile = new MapTile(null, tileX, tileY, tileZ);
|
MapTile tile = new MapTile(null, tileX, tileY, tileZ);
|
||||||
|
|
||||||
double w = 1.0 / (1 << tile.zoomLevel);
|
double w = 1.0 / (1 << tile.zoomLevel);
|
||||||
@ -38,90 +46,156 @@ public class TileRenderTest extends GdxMap {
|
|||||||
double maxLon = MercatorProjection.toLongitude(tile.x + w);
|
double maxLon = MercatorProjection.toLongitude(tile.x + w);
|
||||||
double minLat = MercatorProjection.toLatitude(tile.y + w);
|
double minLat = MercatorProjection.toLatitude(tile.y + w);
|
||||||
double maxLat = MercatorProjection.toLatitude(tile.y);
|
double maxLat = MercatorProjection.toLatitude(tile.y);
|
||||||
|
double lat = minLat + (maxLat - minLat) / 2;
|
||||||
|
double lon = minLon + (maxLon - minLon) / 2;
|
||||||
|
|
||||||
mMap.setMapPosition(minLat + (maxLat - minLat) / 2, minLon
|
MapPosition mapPosition = new MapPosition(lat, lon, 1 << tile.zoomLevel);
|
||||||
+ (maxLon - minLon) / 2, 1 << tile.zoomLevel);
|
|
||||||
|
|
||||||
// mMap.setMapPosition(53.0521, 8.7951, 1 << 15);
|
mMap.setMapPosition(mapPosition);
|
||||||
|
|
||||||
|
final TileManager tileManager;
|
||||||
|
|
||||||
if (loadOneTile) {
|
if (loadOneTile) {
|
||||||
|
|
||||||
tile = new MapTile(new TileNode(), tileX, tileY, tileZ);
|
tile = new MapTile(new TileNode(), tileX, tileY, tileZ);
|
||||||
// setup tile quad-tree, expected for locking
|
/* setup tile quad-tree, expected for locking */
|
||||||
// tile.node= new ;
|
|
||||||
tile.node.parent = tile.node;
|
tile.node.parent = tile.node;
|
||||||
tile.node.parent.parent = tile.node;
|
tile.node.parent.parent = tile.node;
|
||||||
|
|
||||||
// setup TileSet contatining one tile
|
/* setup TileSet contatining one tile */
|
||||||
final TileSet tiles = new TileSet();
|
final TileSet tiles = new TileSet();
|
||||||
tiles.cnt = 1;
|
tiles.cnt = 1;
|
||||||
tiles.tiles[0] = tile;
|
tiles.tiles[0] = tile;
|
||||||
tiles.lockTiles();
|
tiles.lockTiles();
|
||||||
|
|
||||||
tileManager = new TileManager(mMap, 0, 32, 100) {
|
tileManager = new TestTileManager(mMap, tiles);
|
||||||
@Override
|
|
||||||
public boolean getActiveTiles(TileSet tileSet) {
|
|
||||||
if (tileSet == null)
|
|
||||||
tileSet = new TileSet(1);
|
|
||||||
|
|
||||||
tileSet.setTiles(tiles);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void releaseTiles(TileSet tileSet) {
|
|
||||||
tileSet.releaseTiles();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
// create TileManager and calculate tiles for current position
|
/* create TileManager and calculate tiles for current position */
|
||||||
tileManager = new TileManager(mMap, 0, 32, 100);
|
tileManager = new TileManager(mMap, 0, 32, 100);
|
||||||
tileManager.init();
|
|
||||||
tileManager.update(mMap.getMapPosition());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final VectorTileLoader[] tileLoader = { null };
|
/* get the loader created by VectorTileLayer ... */
|
||||||
|
final TestTileLoader[] tileLoader = { null };
|
||||||
|
|
||||||
VectorTileLayer l = new VectorTileLayer(mMap, tileManager,
|
TestVectorTileLayer tileLayer = new TestVectorTileLayer(mMap, tileManager);
|
||||||
new VectorTileRenderer()) {
|
tileLoader[0] = tileLayer.getTileLoader();
|
||||||
protected TileLoader createLoader() {
|
|
||||||
tileLoader[0] = new VectorTileLoader(this) {
|
|
||||||
|
|
||||||
public boolean loadTile(MapTile tile) {
|
|
||||||
mTile = tile;
|
|
||||||
return super.loadTile(tile);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return tileLoader[0];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
TileSource tileSource = new OSciMap4TileSource();
|
TileSource tileSource = new OSciMap4TileSource();
|
||||||
|
//TileSource tileSource = new TestTileSource();
|
||||||
|
|
||||||
l.setTileSource(tileSource);
|
tileLayer.setTileSource(tileSource);
|
||||||
|
|
||||||
//IRenderTheme theme = ThemeLoader.load(VtmThemes.TRONRENDER);
|
//IRenderTheme theme = ThemeLoader.load(VtmThemes.OSMARENDER);
|
||||||
//l.setRenderTheme(theme);
|
//tileLayer.setRenderTheme(theme);
|
||||||
l.setRenderTheme(new DebugTheme());
|
//tileLayer.setRenderTheme(new DebugTheme());
|
||||||
|
|
||||||
|
/* need to create the labellayer here to get the tileloaded event */
|
||||||
|
LabelLayer labelLayer = new LabelLayer(mMap, tileLayer);
|
||||||
|
|
||||||
|
//mMap.layers().add(tileLayer);
|
||||||
|
mMap.setBaseMap(tileLayer);
|
||||||
|
mMap.setTheme(VtmThemes.DEFAULT);
|
||||||
|
|
||||||
|
log.debug("load tiles:");
|
||||||
if (loadOneTile) {
|
if (loadOneTile) {
|
||||||
|
log.debug("load {}", tile);
|
||||||
|
|
||||||
tileLoader[0].loadTile(tile);
|
tileLoader[0].loadTile(tile);
|
||||||
tileManager.jobCompleted(tile, true);
|
tileManager.jobCompleted(tile, true);
|
||||||
} else {
|
} else {
|
||||||
MapTile t;
|
tileManager.update(mapPosition);
|
||||||
while ((t = tileManager.getTileJob()) != null) {
|
MapTile t = tileManager.getTileJob();
|
||||||
|
while (t != null) {
|
||||||
|
log.debug("load {}", t);
|
||||||
|
|
||||||
tileLoader[0].loadTile(t);
|
tileLoader[0].loadTile(t);
|
||||||
tileManager.jobCompleted(t, true);
|
tileManager.jobCompleted(t, true);
|
||||||
|
|
||||||
|
t = tileManager.getTileJob();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mMap.setBaseMap(new BitmapTileLayer(mMap, STAMEN_TONER.build()));
|
mMap.layers().add(labelLayer);
|
||||||
|
|
||||||
mMap.layers().add(l);
|
MapRenderer.setBackgroundColor(0xff888888);
|
||||||
|
}
|
||||||
|
|
||||||
|
static class TestTileLoader extends VectorTileLoader {
|
||||||
|
|
||||||
|
public TestTileLoader(VectorTileLayer tileLayer) {
|
||||||
|
super(tileLayer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean loadTile(MapTile tile) {
|
||||||
|
mTile = tile;
|
||||||
|
return super.loadTile(tile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process(MapElement element) {
|
||||||
|
/* ignore polygons for testing */
|
||||||
|
if (element.type != GeometryType.LINE)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (element.tags.containsKey("name"))
|
||||||
|
super.process(element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class TestVectorTileLayer extends VectorTileLayer {
|
||||||
|
final VectorTileLoader[] tileLoader = { null };
|
||||||
|
|
||||||
|
public TestVectorTileLayer(Map map, TileManager tileManager) {
|
||||||
|
super(map, tileManager, new VectorTileRenderer());
|
||||||
|
}
|
||||||
|
|
||||||
|
TestTileLoader getTileLoader() {
|
||||||
|
return (TestTileLoader) mTileLoader[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getNumLoaders() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void initLoader(int numLoaders) {
|
||||||
|
mTileLoader = new TileLoader[numLoaders];
|
||||||
|
for (int i = 0; i < numLoaders; i++) {
|
||||||
|
mTileLoader[i] = new TestTileLoader(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMapEvent(Event event, MapPosition mapPosition) {
|
||||||
|
/* ignore map events */
|
||||||
|
if (event != Map.CLEAR_EVENT)
|
||||||
|
return;
|
||||||
|
|
||||||
|
//super.onMapEvent(event, mapPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class TestTileManager extends TileManager {
|
||||||
|
TileSet fixedTiles;
|
||||||
|
|
||||||
|
public TestTileManager(Map map, TileSet fixedTiles) {
|
||||||
|
super(map, 0, 30, 100);
|
||||||
|
this.fixedTiles = fixedTiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getActiveTiles(TileSet tileSet) {
|
||||||
|
if (tileSet == null)
|
||||||
|
tileSet = new TileSet(fixedTiles.cnt);
|
||||||
|
|
||||||
|
tileSet.setTiles(fixedTiles);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
GdxMapApp.init();
|
GdxMapApp.init();
|
||||||
GdxMapApp.run(new TileRenderTest(), null, 256);
|
GdxMapApp.run(new TileRenderTest(), null, 512);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ public class GdxModelRenderer extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean setup() {
|
public boolean setup() {
|
||||||
|
|
||||||
modelBatch = new ModelBatch(new DefaultShaderProvider());
|
modelBatch = new ModelBatch(new DefaultShaderProvider());
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ public class GdxModelRenderer extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized void update(GLViewport v) {
|
public synchronized void update(GLViewport v) {
|
||||||
// if (loading && assets.update())
|
// if (loading && assets.update())
|
||||||
// doneLoading();
|
// doneLoading();
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ public class GdxModelRenderer extends LayerRenderer {
|
|||||||
Renderable r = new Renderable();
|
Renderable r = new Renderable();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void render(GLViewport v) {
|
public void render(GLViewport v) {
|
||||||
if (instances.size == 0)
|
if (instances.size == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ public class GdxRenderer3D extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean setup() {
|
public boolean setup() {
|
||||||
|
|
||||||
modelBatch = new ModelBatch(new DefaultShaderProvider());
|
modelBatch = new ModelBatch(new DefaultShaderProvider());
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ public class GdxRenderer3D extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized void update(GLViewport v) {
|
public synchronized void update(GLViewport v) {
|
||||||
// if (loading && assets.update())
|
// if (loading && assets.update())
|
||||||
// doneLoading();
|
// doneLoading();
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ public class GdxRenderer3D extends LayerRenderer {
|
|||||||
Renderable r = new Renderable();
|
Renderable r = new Renderable();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void render(GLViewport v) {
|
public void render(GLViewport v) {
|
||||||
if (instances.size == 0)
|
if (instances.size == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public class GdxRenderer3D2 extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean setup() {
|
public boolean setup() {
|
||||||
|
|
||||||
// if (assets == null)
|
// if (assets == null)
|
||||||
// assets = new AssetManager();
|
// assets = new AssetManager();
|
||||||
@ -60,7 +60,7 @@ public class GdxRenderer3D2 extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized void update(GLViewport v) {
|
public synchronized void update(GLViewport v) {
|
||||||
// if (loading && assets.update())
|
// if (loading && assets.update())
|
||||||
// doneLoading();
|
// doneLoading();
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ public class GdxRenderer3D2 extends LayerRenderer {
|
|||||||
float[] mBox = new float[8];
|
float[] mBox = new float[8];
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void render(GLViewport v) {
|
public void render(GLViewport v) {
|
||||||
if (instances.size == 0)
|
if (instances.size == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ public class AtlasTest extends GdxMap {
|
|||||||
|
|
||||||
TextBucket tl = new TextBucket();
|
TextBucket tl = new TextBucket();
|
||||||
TextStyle t = new TextBuilder().setFontSize(20).setColor(Color.BLACK).build();
|
TextStyle t = new TextBuilder().setFontSize(20).setColor(Color.BLACK).build();
|
||||||
buckets.setTextureBuckets(tl);
|
buckets.set(tl);
|
||||||
|
|
||||||
float[] points = new float[10];
|
float[] points = new float[10];
|
||||||
|
|
||||||
@ -101,7 +101,6 @@ public class AtlasTest extends GdxMap {
|
|||||||
|
|
||||||
TextItem ti = TextItem.pool.get();
|
TextItem ti = TextItem.pool.get();
|
||||||
ti.set(r.x + r.w / 2, r.y + r.h / 2, "" + i, t);
|
ti.set(r.x + r.w / 2, r.y + r.h / 2, "" + i, t);
|
||||||
|
|
||||||
ti.x1 = 0;
|
ti.x1 = 0;
|
||||||
ti.y1 = 1; // (short) (size / 2);
|
ti.y1 = 1; // (short) (size / 2);
|
||||||
ti.x2 = 1; // (short) size;
|
ti.x2 = 1; // (short) size;
|
||||||
@ -131,7 +130,7 @@ public class AtlasTest extends GdxMap {
|
|||||||
boolean initial = true;
|
boolean initial = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void update(GLViewport v) {
|
public void update(GLViewport v) {
|
||||||
|
|
||||||
if (initial) {
|
if (initial) {
|
||||||
mMapPosition.copy(v.pos);
|
mMapPosition.copy(v.pos);
|
||||||
|
@ -75,7 +75,7 @@ public class BezierTest extends GdxMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized void update(GLViewport v) {
|
public synchronized void update(GLViewport v) {
|
||||||
|
|
||||||
if (mMapPosition.scale == 0)
|
if (mMapPosition.scale == 0)
|
||||||
mMapPosition.copy(v.pos);
|
mMapPosition.copy(v.pos);
|
||||||
|
@ -61,7 +61,7 @@ public class CustomRenderer extends LayerRenderer {
|
|||||||
|
|
||||||
// ---------- everything below runs in GLRender Thread ----------
|
// ---------- everything below runs in GLRender Thread ----------
|
||||||
@Override
|
@Override
|
||||||
protected void update(GLViewport v) {
|
public void update(GLViewport v) {
|
||||||
if (!mInitialized) {
|
if (!mInitialized) {
|
||||||
if (!init())
|
if (!init())
|
||||||
return;
|
return;
|
||||||
@ -86,7 +86,7 @@ public class CustomRenderer extends LayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void render(GLViewport v) {
|
public void render(GLViewport v) {
|
||||||
|
|
||||||
// Use the program object
|
// Use the program object
|
||||||
GLState.useProgram(mProgramObject);
|
GLState.useProgram(mProgramObject);
|
||||||
|
@ -7,8 +7,8 @@ import org.oscim.backend.canvas.Color;
|
|||||||
import org.oscim.gdx.GdxMap;
|
import org.oscim.gdx.GdxMap;
|
||||||
import org.oscim.gdx.GdxMapApp;
|
import org.oscim.gdx.GdxMapApp;
|
||||||
import org.oscim.layers.GenericLayer;
|
import org.oscim.layers.GenericLayer;
|
||||||
import org.oscim.renderer.BufferObject;
|
|
||||||
import org.oscim.renderer.BucketRenderer;
|
import org.oscim.renderer.BucketRenderer;
|
||||||
|
import org.oscim.renderer.BufferObject;
|
||||||
import org.oscim.renderer.GLShader;
|
import org.oscim.renderer.GLShader;
|
||||||
import org.oscim.renderer.GLState;
|
import org.oscim.renderer.GLState;
|
||||||
import org.oscim.renderer.GLUtils;
|
import org.oscim.renderer.GLUtils;
|
||||||
@ -51,7 +51,7 @@ public class HexagonRenderTest extends GdxMap {
|
|||||||
float mCellScale = 60 * MapRenderer.COORD_SCALE;
|
float mCellScale = 60 * MapRenderer.COORD_SCALE;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void update(GLViewport v) {
|
public void update(GLViewport v) {
|
||||||
if (!mInitialized) {
|
if (!mInitialized) {
|
||||||
if (!init()) {
|
if (!init()) {
|
||||||
return;
|
return;
|
||||||
@ -87,7 +87,7 @@ public class HexagonRenderTest extends GdxMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void render(GLViewport v) {
|
public void render(GLViewport v) {
|
||||||
|
|
||||||
// Use the program object
|
// Use the program object
|
||||||
GLState.useProgram(mProgramObject);
|
GLState.useProgram(mProgramObject);
|
||||||
|
@ -27,7 +27,7 @@ public class SymbolRenderLayer extends BucketRenderer {
|
|||||||
|
|
||||||
public SymbolRenderLayer() {
|
public SymbolRenderLayer() {
|
||||||
SymbolBucket l = new SymbolBucket();
|
SymbolBucket l = new SymbolBucket();
|
||||||
buckets.setTextureBuckets(l);
|
buckets.set(l);
|
||||||
|
|
||||||
SymbolItem it = SymbolItem.pool.get();
|
SymbolItem it = SymbolItem.pool.get();
|
||||||
it.billboard = false;
|
it.billboard = false;
|
||||||
@ -42,7 +42,7 @@ public class SymbolRenderLayer extends BucketRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void update(GLViewport v) {
|
public void update(GLViewport v) {
|
||||||
if (initialize) {
|
if (initialize) {
|
||||||
initialize = false;
|
initialize = false;
|
||||||
mMapPosition.copy(v.pos);
|
mMapPosition.copy(v.pos);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user