diff --git a/vtm-android-example/src/org/oscim/android/test/MapboxMapActivity.java b/vtm-android-example/src/org/oscim/android/test/MapboxMapActivity.java index a5da6a67..046dd2c6 100644 --- a/vtm-android-example/src/org/oscim/android/test/MapboxMapActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/MapboxMapActivity.java @@ -22,7 +22,6 @@ import org.oscim.layers.tile.vector.labeling.LabelLayer; import org.oscim.theme.VtmThemes; import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.mvt.MapboxTileSource; -import org.oscim.tiling.source.mvt.TileDecoder; public class MapboxMapActivity extends MapActivity { @@ -30,9 +29,9 @@ public class MapboxMapActivity extends MapActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - TileDecoder.LOCALE = "en"; UrlTileSource tileSource = MapboxTileSource.builder() .apiKey("mapzen-xxxxxxx") // Put a proper API key + //.locale("en") .build(); VectorTileLayer l = mMap.setBaseMap(tileSource); diff --git a/vtm-playground/src/org/oscim/test/MapboxTest.java b/vtm-playground/src/org/oscim/test/MapboxTest.java index 1a4883ca..6b1648c2 100644 --- a/vtm-playground/src/org/oscim/test/MapboxTest.java +++ b/vtm-playground/src/org/oscim/test/MapboxTest.java @@ -21,15 +21,14 @@ import org.oscim.layers.tile.vector.labeling.LabelLayer; import org.oscim.theme.VtmThemes; import org.oscim.tiling.source.UrlTileSource; import org.oscim.tiling.source.mvt.MapboxTileSource; -import org.oscim.tiling.source.mvt.TileDecoder; public class MapboxTest extends GdxMapApp { @Override public void createLayers() { - TileDecoder.LOCALE = "en"; UrlTileSource tileSource = MapboxTileSource.builder() .apiKey("mapzen-xxxxxxx") // Put a proper API key + //.locale("en") .build(); VectorTileLayer l = mMap.setBaseMap(tileSource); diff --git a/vtm/src/org/oscim/tiling/source/mvt/MapboxTileSource.java b/vtm/src/org/oscim/tiling/source/mvt/MapboxTileSource.java index 753dc53b..06f96903 100644 --- a/vtm/src/org/oscim/tiling/source/mvt/MapboxTileSource.java +++ b/vtm/src/org/oscim/tiling/source/mvt/MapboxTileSource.java @@ -27,11 +27,17 @@ public class MapboxTileSource extends UrlTileSource { private final static String DEFAULT_PATH = "/{Z}/{X}/{Y}.mvt"; public static class Builder> extends UrlTileSource.Builder { + private String locale = ""; public Builder() { super(DEFAULT_URL, DEFAULT_PATH, 1, 17); } + public T locale(String locale) { + this.locale = locale; + return self(); + } + public MapboxTileSource build() { return new MapboxTileSource(this); } @@ -42,8 +48,11 @@ public class MapboxTileSource extends UrlTileSource { return new Builder(); } + private final String locale; + protected MapboxTileSource(Builder builder) { super(builder); + this.locale = builder.locale; } public MapboxTileSource() { @@ -56,6 +65,6 @@ public class MapboxTileSource extends UrlTileSource { @Override public ITileDataSource getDataSource() { - return new UrlTileDataSource(this, new TileDecoder(), getHttpEngine()); + return new UrlTileDataSource(this, new TileDecoder(locale), getHttpEngine()); } } diff --git a/vtm/src/org/oscim/tiling/source/mvt/TileDecoder.java b/vtm/src/org/oscim/tiling/source/mvt/TileDecoder.java index b5d70d00..6ab2df29 100644 --- a/vtm/src/org/oscim/tiling/source/mvt/TileDecoder.java +++ b/vtm/src/org/oscim/tiling/source/mvt/TileDecoder.java @@ -35,11 +35,6 @@ import java.util.ArrayList; public class TileDecoder extends PbfDecoder { private static final Logger log = LoggerFactory.getLogger(TileDecoder.class); - /** - * Use default locale. - */ - public static String LOCALE = ""; - private static final int TAG_TILE_LAYERS = 3; private static final int TAG_LAYER_VERSION = 15; @@ -70,11 +65,20 @@ public class TileDecoder extends PbfDecoder { private short[] mTmpTags = new short[1024]; private Tile mTile; + private final String mLocale; private ITileDataSink mMapDataCallback; private final static float REF_TILE_SIZE = 4096.0f; private float mScale; + public TileDecoder() { + this(""); + } + + public TileDecoder(String locale) { + mLocale = locale; + } + @Override public boolean decode(Tile tile, ITileDataSink mapDataCallback, InputStream is) throws IOException { @@ -197,7 +201,7 @@ public class TileDecoder extends PbfDecoder { continue; } - if (LOCALE.equals(key.substring(5))) { + if (mLocale.equals(key.substring(5))) { //log.debug("found local " + key); matchedLocal = i; } //else