OSM indoor layer: allow setting text style #366

This commit is contained in:
Emux 2017-06-20 09:24:09 +03:00
parent 3a3a58d273
commit 767019ee06
4 changed files with 29 additions and 14 deletions

View File

@ -25,11 +25,13 @@ import android.widget.ToggleButton;
import org.jeo.map.Style;
import org.jeo.vector.VectorDataset;
import org.oscim.backend.canvas.Color;
import org.oscim.layers.OSMIndoorLayer;
import org.oscim.layers.tile.buildings.BuildingLayer;
import org.oscim.layers.tile.vector.labeling.LabelLayer;
import org.oscim.test.JeoTest;
import org.oscim.theme.VtmThemes;
import org.oscim.theme.styles.TextStyle;
import org.oscim.utils.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -94,7 +96,13 @@ public class JeoIndoorMapActivity extends BaseMapActivity {
VectorDataset data = JeoTest.readGeoJson(is);
Style style = JeoTest.getStyle();
mIndoorLayer = new OSMIndoorLayer(mMap, data, style, getResources().getDisplayMetrics().density);
float scale = getResources().getDisplayMetrics().density;
TextStyle textStyle = TextStyle.builder()
.isCaption(true)
.fontSize(16 * scale).color(Color.BLACK)
.strokeWidth(2.2f * scale).strokeColor(Color.WHITE)
.build();
mIndoorLayer = new OSMIndoorLayer(mMap, data, style, textStyle);
mMap.layers().add(mIndoorLayer);
showToast("data ready");

View File

@ -46,17 +46,9 @@ public class OSMIndoorLayer extends JeoVectorLayer {
protected TextBucket mTextLayer;
protected TextStyle mText;
public OSMIndoorLayer(Map map, VectorDataset data, Style style) {
this(map, data, style, 1);
}
public OSMIndoorLayer(Map map, VectorDataset data, Style style, float scale) {
public OSMIndoorLayer(Map map, VectorDataset data, Style style, TextStyle textStyle) {
super(map, data, style);
mText = TextStyle.builder()
.fontSize(16 * scale).color(Color.BLACK)
.strokeWidth(2.2f * scale).strokeColor(Color.WHITE)
.build();
mText = textStyle;
}
public boolean[] activeLevels = new boolean[10];

View File

@ -1,5 +1,6 @@
/*
* Copyright 2016 devemux86
* Copyright 2014 Hannes Janetzek
* Copyright 2016-2017 devemux86
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
@ -32,11 +33,13 @@ import org.jeo.vector.Schema;
import org.jeo.vector.SchemaBuilder;
import org.jeo.vector.VectorDataset;
import org.jeo.vector.VectorQuery;
import org.oscim.backend.canvas.Color;
import org.oscim.layers.OSMIndoorLayer;
import org.oscim.layers.tile.buildings.BuildingLayer;
import org.oscim.layers.tile.vector.VectorTileLayer;
import org.oscim.map.Map;
import org.oscim.renderer.MapRenderer;
import org.oscim.theme.styles.TextStyle;
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
import java.io.File;
@ -60,7 +63,12 @@ public class JeoTest {
}
Style style = JeoTest.getStyle();
map.layers().add(new OSMIndoorLayer(map, data, style));
TextStyle textStyle = TextStyle.builder()
.isCaption(true)
.fontSize(16).color(Color.BLACK)
.strokeWidth(2.2f).strokeColor(Color.WHITE)
.build();
map.layers().add(new OSMIndoorLayer(map, data, style, textStyle));
}
public static Style getStyle() {

View File

@ -19,12 +19,14 @@ package org.oscim.test.jeo;
import org.jeo.map.Style;
import org.jeo.vector.VectorDataset;
import org.oscim.backend.canvas.Color;
import org.oscim.gdx.GdxMap;
import org.oscim.gdx.GdxMapApp;
import org.oscim.layers.JeoVectorLayer;
import org.oscim.layers.OSMIndoorLayer;
import org.oscim.layers.tile.bitmap.BitmapTileLayer;
import org.oscim.test.JeoTest;
import org.oscim.theme.styles.TextStyle;
import java.io.IOException;
import java.io.InputStream;
@ -54,7 +56,12 @@ public class LayerTest extends GdxMap {
VectorDataset data = JeoTest.readGeoJson(is);
Style style = JeoTest.getStyle();
mIndoorLayer = new OSMIndoorLayer(mMap, data, style);
TextStyle textStyle = TextStyle.builder()
.isCaption(true)
.fontSize(16).color(Color.BLACK)
.strokeWidth(2.2f).strokeColor(Color.WHITE)
.build();
mIndoorLayer = new OSMIndoorLayer(mMap, data, style, textStyle);
mIndoorLayer.activeLevels[0] = true;
mIndoorLayer.activeLevels[1] = true;
mIndoorLayer.activeLevels[2] = true;