è necessario estendere la classe UrlTileProvider in modo da poter definire l'URL per le mappe OSM piastrellato e aggiungere una sovrapposizione di piastrelle del genere:
MyUrlTileProvider mTileProvider = new MyUrlTileProvider(256, 256, mUrl);
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mTileProvider));
con l'URL per OSM definito così:
String mUrl = "http://a.tile.openstreetmap.org/{z}/{x}/{y}.png";
La classe 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;
}
}
ora sto cercando di ottenere quelle mappe piastrelle da OSM con una modalità offline, quindi se qualcuno ottiene una soluzione rapida, per favore fatemelo sapere!
Sei curioso di sapere perché vuoi usare OSM su google maps? – tyczj
Sono limitato solo dai TOS di Google Maps. La mia applicazione utilizza dati privati e non posso permettermi $ 10.000 all'anno ... – Patrick