Trzeba rozszerzyć klasę UrlTileProvider tak można określić adres URL dla OSM kafelki mapy i dodać nakładki dachówka tak:
MyUrlTileProvider mTileProvider = new MyUrlTileProvider(256, 256, mUrl);
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mTileProvider));
z adresem URL dla OSM zdefiniowany tak:
String mUrl = "http://a.tile.openstreetmap.org/{z}/{x}/{y}.png";
Klasa MyUrlTileProvider:
public class MyUrlTileProvider extends UrlTileProvider {
private String baseUrl;
public MyUrlTileProvider(int width, int height, String url) {
super(width, height);
this.baseUrl = url;
}
@Override
public URL getTileUrl(int x, int y, int zoom) {
try {
return new URL(baseUrl.replace("{z}", ""+zoom).replace("{x}",""+x).replace("{y}",""+y));
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}
}
jestem teraz próbuje dostać te mapy z kafelkami OSM z trybem offline, więc jeśli ktoś dostanie szybkie rozwiązanie, proszę dać mi znać!
Ciekawe, dlaczego chcesz używać OSM na mapach google? – tyczj
Jestem po prostu ograniczony przez Google Maps TOS. Moja aplikacja wykorzystuje prywatne dane i nie mogę sobie pozwolić na 10 000 USD rocznie ... – Patrick