diff --git a/vtm-android-example/src/org/oscim/android/test/OsmJsonMapActivity.java b/vtm-android-example/src/org/oscim/android/test/OsmJsonMapActivity.java index a9b9e053..f5a7f95e 100644 --- a/vtm-android-example/src/org/oscim/android/test/OsmJsonMapActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/OsmJsonMapActivity.java @@ -20,14 +20,15 @@ package org.oscim.android.test; import org.oscim.layers.TileGridLayer; import org.oscim.layers.tile.buildings.BuildingLayer; import org.oscim.layers.tile.vector.VectorTileLayer; +import org.oscim.layers.tile.vector.labeling.LabelLayer; import org.oscim.theme.IRenderTheme; import org.oscim.theme.ThemeLoader; import org.oscim.theme.VtmThemes; -import org.oscim.tiling.source.geojson.HighroadJsonTileSource; +import org.oscim.tiling.source.geojson.OsmRoadLineJsonTileSource; import org.oscim.tiling.source.geojson.OsmBuildingJsonTileSource; import org.oscim.tiling.source.geojson.OsmLanduseJsonTileSource; import org.oscim.tiling.source.geojson.OsmWaterJsonTileSource; -import org.oscim.tiling.source.geojson.RiverJsonTileSource; +import org.oscim.tiling.source.geojson.OsmRoadLabelJsonTileSource; import android.os.Bundle; @@ -37,22 +38,17 @@ public class OsmJsonMapActivity extends MapActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - IRenderTheme theme = ThemeLoader.load(VtmThemes.OSMARENDER); + IRenderTheme theme = ThemeLoader.load(VtmThemes.DEFAULT); mMap.setBaseMap(new VectorTileLayer(mMap, new OsmLanduseJsonTileSource())); mMap.setTheme(theme); - VectorTileLayer l = new VectorTileLayer(mMap, new RiverJsonTileSource()); + VectorTileLayer l = new VectorTileLayer(mMap, new OsmWaterJsonTileSource()); l.setRenderTheme(theme); l.tileRenderer().setOverdrawColor(0); mMap.layers().add(l); - l = new VectorTileLayer(mMap, new OsmWaterJsonTileSource()); - l.setRenderTheme(theme); - l.tileRenderer().setOverdrawColor(0); - mMap.layers().add(l); - - l = new VectorTileLayer(mMap, new HighroadJsonTileSource()); + l = new VectorTileLayer(mMap, new OsmRoadLineJsonTileSource()); l.setRenderTheme(theme); l.tileRenderer().setOverdrawColor(0); mMap.layers().add(l); @@ -63,6 +59,12 @@ public class OsmJsonMapActivity extends MapActivity { mMap.layers().add(l); mMap.layers().add(new BuildingLayer(mMap, l)); + l = new VectorTileLayer(mMap, new OsmRoadLabelJsonTileSource()); + l.setRenderTheme(theme); + l.tileRenderer().setOverdrawColor(0); + mMap.layers().add(l); + mMap.layers().add(new LabelLayer(mMap, l)); + mMap.layers().add(new TileGridLayer(mMap)); mMap.setMapPosition(53.08, 8.83, Math.pow(2, 16)); diff --git a/vtm-extras/src/org/oscim/tiling/source/geojson/OsmRoadLabelJsonTileSource.java b/vtm-extras/src/org/oscim/tiling/source/geojson/OsmRoadLabelJsonTileSource.java new file mode 100644 index 00000000..76c87b05 --- /dev/null +++ b/vtm-extras/src/org/oscim/tiling/source/geojson/OsmRoadLabelJsonTileSource.java @@ -0,0 +1,59 @@ +/* + * Copyright 2016 devemux86 + * + * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). + * + * 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 . + */ +package org.oscim.tiling.source.geojson; + +import org.oscim.core.MapElement; +import org.oscim.core.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Map; + +public class OsmRoadLabelJsonTileSource extends GeoJsonTileSource { + + static final Logger log = LoggerFactory.getLogger(OsmRoadLabelJsonTileSource.class); + + public OsmRoadLabelJsonTileSource() { + super("http://tile.openstreetmap.us/vectiles-skeletron"); + } + + @Override + public void decodeTags(MapElement mapElement, Map properties) { + String highway = null; + + for (Map.Entry entry : properties.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + //log.debug(key + " : " + String.valueOf(value)); + + if (value == null) + continue; + + if ("highway".equals(key) && value instanceof String) { + highway = (String) entry.getValue(); + } + else if ("name".equals(key) && value instanceof String) { + mapElement.tags.add(new Tag("name", (String) value)); + } + } + + if (highway == null) + return; + + mapElement.tags.add(new Tag("highway", highway)); + } +} diff --git a/vtm-extras/src/org/oscim/tiling/source/geojson/HighroadJsonTileSource.java b/vtm-extras/src/org/oscim/tiling/source/geojson/OsmRoadLineJsonTileSource.java similarity index 93% rename from vtm-extras/src/org/oscim/tiling/source/geojson/HighroadJsonTileSource.java rename to vtm-extras/src/org/oscim/tiling/source/geojson/OsmRoadLineJsonTileSource.java index 4d00d2fe..4c66edee 100644 --- a/vtm-extras/src/org/oscim/tiling/source/geojson/HighroadJsonTileSource.java +++ b/vtm-extras/src/org/oscim/tiling/source/geojson/OsmRoadLineJsonTileSource.java @@ -23,14 +23,14 @@ import org.oscim.core.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class HighroadJsonTileSource extends GeoJsonTileSource { +public class OsmRoadLineJsonTileSource extends GeoJsonTileSource { - static final Logger log = LoggerFactory.getLogger(HighroadJsonTileSource.class); + static final Logger log = LoggerFactory.getLogger(OsmRoadLineJsonTileSource.class); Tag mTagTunnel = new Tag("tunnel", "yes"); Tag mTagBridge = new Tag("bridge", "yes"); - public HighroadJsonTileSource() { + public OsmRoadLineJsonTileSource() { super("http://tile.openstreetmap.us/vectiles-highroad"); }