From 767019ee06713e052288232ba36624a5d7a24735 Mon Sep 17 00:00:00 2001 From: Emux Date: Tue, 20 Jun 2017 09:24:09 +0300 Subject: [PATCH] OSM indoor layer: allow setting text style #366 --- .../org/oscim/android/test/JeoIndoorMapActivity.java | 10 +++++++++- vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java | 12 ++---------- vtm-jeo/src/org/oscim/test/JeoTest.java | 12 ++++++++++-- vtm-playground/src/org/oscim/test/jeo/LayerTest.java | 9 ++++++++- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/vtm-android-example/src/org/oscim/android/test/JeoIndoorMapActivity.java b/vtm-android-example/src/org/oscim/android/test/JeoIndoorMapActivity.java index b039c3a2..89ddc82d 100644 --- a/vtm-android-example/src/org/oscim/android/test/JeoIndoorMapActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/JeoIndoorMapActivity.java @@ -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"); diff --git a/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java b/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java index 4f78a18b..8c95b174 100644 --- a/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java +++ b/vtm-jeo/src/org/oscim/layers/OSMIndoorLayer.java @@ -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]; diff --git a/vtm-jeo/src/org/oscim/test/JeoTest.java b/vtm-jeo/src/org/oscim/test/JeoTest.java index 494bd04c..3f46e529 100644 --- a/vtm-jeo/src/org/oscim/test/JeoTest.java +++ b/vtm-jeo/src/org/oscim/test/JeoTest.java @@ -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() { diff --git a/vtm-playground/src/org/oscim/test/jeo/LayerTest.java b/vtm-playground/src/org/oscim/test/jeo/LayerTest.java index 92c61396..97ace9d6 100644 --- a/vtm-playground/src/org/oscim/test/jeo/LayerTest.java +++ b/vtm-playground/src/org/oscim/test/jeo/LayerTest.java @@ -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;