15

È possibile utilizzare un fornitore di mappe stradali aperto con il nuovo Google Maps V2 Api su Android? In tal caso, puoi fornire un esempio o una documentazione? Ho esaminato rapidamente i documenti e ho trovato UrlTileProvider(), quindi sembra probabile che sia possibile.Apri mappe stradali con Android Google Maps Api v2

Bonus: sta semplicemente utilizzando la classe MapFragment con le tessere OSM ancora vincolate dal servizio Google Maps TOS?

+1

Sei curioso di sapere perché vuoi usare OSM su google maps? – tyczj

+1

Sono limitato solo dai TOS di Google Maps. La mia applicazione utilizza dati privati ​​e non posso permettermi $ 10.000 all'anno ... – Patrick

risposta

21

è 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!

+0

Potresti forse ampliarlo con un'implementazione di base? –

+0

qualcuno ha effettivamente usato questo? Non ho ancora provato questo – Patrick

+0

Ho ottenuto il campione e in esecuzione con OSM. Funziona alla grande. Questo con una modalità offline sarebbe killer. Ho solo bisogno di scoprire su eventuali problemi di licenza .... – Patrick

1

Quando si utilizza questo metodo, si prega di prestare attenzione alla politica OSM Tile Uso: http://wiki.openstreetmap.org/wiki/Tile_usage_policy

In particolare "l'uso pesante (ad esempio, la distribuzione di un app che utilizza tessere dal openstreetmap.org) è vietato senza previa autorizzazione"

Problemi correlati