Mapbox (Mapzen): locale improvements #57
This commit is contained in:
parent
15bc23cadf
commit
5c825ea9eb
@ -22,7 +22,6 @@ import org.oscim.layers.tile.vector.labeling.LabelLayer;
|
|||||||
import org.oscim.theme.VtmThemes;
|
import org.oscim.theme.VtmThemes;
|
||||||
import org.oscim.tiling.source.UrlTileSource;
|
import org.oscim.tiling.source.UrlTileSource;
|
||||||
import org.oscim.tiling.source.mvt.MapboxTileSource;
|
import org.oscim.tiling.source.mvt.MapboxTileSource;
|
||||||
import org.oscim.tiling.source.mvt.TileDecoder;
|
|
||||||
|
|
||||||
public class MapboxMapActivity extends MapActivity {
|
public class MapboxMapActivity extends MapActivity {
|
||||||
|
|
||||||
@ -30,9 +29,9 @@ public class MapboxMapActivity extends MapActivity {
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
TileDecoder.LOCALE = "en";
|
|
||||||
UrlTileSource tileSource = MapboxTileSource.builder()
|
UrlTileSource tileSource = MapboxTileSource.builder()
|
||||||
.apiKey("mapzen-xxxxxxx") // Put a proper API key
|
.apiKey("mapzen-xxxxxxx") // Put a proper API key
|
||||||
|
//.locale("en")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
VectorTileLayer l = mMap.setBaseMap(tileSource);
|
VectorTileLayer l = mMap.setBaseMap(tileSource);
|
||||||
|
@ -21,15 +21,14 @@ import org.oscim.layers.tile.vector.labeling.LabelLayer;
|
|||||||
import org.oscim.theme.VtmThemes;
|
import org.oscim.theme.VtmThemes;
|
||||||
import org.oscim.tiling.source.UrlTileSource;
|
import org.oscim.tiling.source.UrlTileSource;
|
||||||
import org.oscim.tiling.source.mvt.MapboxTileSource;
|
import org.oscim.tiling.source.mvt.MapboxTileSource;
|
||||||
import org.oscim.tiling.source.mvt.TileDecoder;
|
|
||||||
|
|
||||||
public class MapboxTest extends GdxMapApp {
|
public class MapboxTest extends GdxMapApp {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createLayers() {
|
public void createLayers() {
|
||||||
TileDecoder.LOCALE = "en";
|
|
||||||
UrlTileSource tileSource = MapboxTileSource.builder()
|
UrlTileSource tileSource = MapboxTileSource.builder()
|
||||||
.apiKey("mapzen-xxxxxxx") // Put a proper API key
|
.apiKey("mapzen-xxxxxxx") // Put a proper API key
|
||||||
|
//.locale("en")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
VectorTileLayer l = mMap.setBaseMap(tileSource);
|
VectorTileLayer l = mMap.setBaseMap(tileSource);
|
||||||
|
@ -27,11 +27,17 @@ public class MapboxTileSource extends UrlTileSource {
|
|||||||
private final static String DEFAULT_PATH = "/{Z}/{X}/{Y}.mvt";
|
private final static String DEFAULT_PATH = "/{Z}/{X}/{Y}.mvt";
|
||||||
|
|
||||||
public static class Builder<T extends Builder<T>> extends UrlTileSource.Builder<T> {
|
public static class Builder<T extends Builder<T>> extends UrlTileSource.Builder<T> {
|
||||||
|
private String locale = "";
|
||||||
|
|
||||||
public Builder() {
|
public Builder() {
|
||||||
super(DEFAULT_URL, DEFAULT_PATH, 1, 17);
|
super(DEFAULT_URL, DEFAULT_PATH, 1, 17);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T locale(String locale) {
|
||||||
|
this.locale = locale;
|
||||||
|
return self();
|
||||||
|
}
|
||||||
|
|
||||||
public MapboxTileSource build() {
|
public MapboxTileSource build() {
|
||||||
return new MapboxTileSource(this);
|
return new MapboxTileSource(this);
|
||||||
}
|
}
|
||||||
@ -42,8 +48,11 @@ public class MapboxTileSource extends UrlTileSource {
|
|||||||
return new Builder();
|
return new Builder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final String locale;
|
||||||
|
|
||||||
protected MapboxTileSource(Builder<?> builder) {
|
protected MapboxTileSource(Builder<?> builder) {
|
||||||
super(builder);
|
super(builder);
|
||||||
|
this.locale = builder.locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapboxTileSource() {
|
public MapboxTileSource() {
|
||||||
@ -56,6 +65,6 @@ public class MapboxTileSource extends UrlTileSource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ITileDataSource getDataSource() {
|
public ITileDataSource getDataSource() {
|
||||||
return new UrlTileDataSource(this, new TileDecoder(), getHttpEngine());
|
return new UrlTileDataSource(this, new TileDecoder(locale), getHttpEngine());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,11 +35,6 @@ import java.util.ArrayList;
|
|||||||
public class TileDecoder extends PbfDecoder {
|
public class TileDecoder extends PbfDecoder {
|
||||||
private static final Logger log = LoggerFactory.getLogger(TileDecoder.class);
|
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_TILE_LAYERS = 3;
|
||||||
|
|
||||||
private static final int TAG_LAYER_VERSION = 15;
|
private static final int TAG_LAYER_VERSION = 15;
|
||||||
@ -70,11 +65,20 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
private short[] mTmpTags = new short[1024];
|
private short[] mTmpTags = new short[1024];
|
||||||
|
|
||||||
private Tile mTile;
|
private Tile mTile;
|
||||||
|
private final String mLocale;
|
||||||
private ITileDataSink mMapDataCallback;
|
private ITileDataSink mMapDataCallback;
|
||||||
|
|
||||||
private final static float REF_TILE_SIZE = 4096.0f;
|
private final static float REF_TILE_SIZE = 4096.0f;
|
||||||
private float mScale;
|
private float mScale;
|
||||||
|
|
||||||
|
public TileDecoder() {
|
||||||
|
this("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public TileDecoder(String locale) {
|
||||||
|
mLocale = locale;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean decode(Tile tile, ITileDataSink mapDataCallback, InputStream is)
|
public boolean decode(Tile tile, ITileDataSink mapDataCallback, InputStream is)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
@ -197,7 +201,7 @@ public class TileDecoder extends PbfDecoder {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LOCALE.equals(key.substring(5))) {
|
if (mLocale.equals(key.substring(5))) {
|
||||||
//log.debug("found local " + key);
|
//log.debug("found local " + key);
|
||||||
matchedLocal = i;
|
matchedLocal = i;
|
||||||
} //else
|
} //else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user