GeoJSON vector tiles: add road labels, #48
This commit is contained in:
parent
1882806b05
commit
dfe4a10bf0
@ -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));
|
||||
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
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<String, Object> properties) {
|
||||
String highway = null;
|
||||
|
||||
for (Map.Entry<String, Object> 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));
|
||||
}
|
||||
}
|
@ -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");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user