15

Est-il possible d'utiliser un fournisseur de carte routière ouverte avec la nouvelle version de Google Maps V2 Api sur Android? Si oui, pouvez-vous fournir un exemple ou une documentation? J'ai regardé rapidement les documents et trouvé UrlTileProvider(), donc il semble que c'est possible. Bonus: Utilise-t-il simplement la classe MapFragment avec des tuiles OSM toujours liées par les Google Maps TOS?Ouvrir Street Maps avec Android Google Maps Api v2

+1

http://wiki.openstreetmap.org/wiki/Tile_usage_policy

Plus précisément « est interdite sans autorisation préalable utilisation intensive (par exemple la distribution d'une application qui utilise des tuiles de openstreetmap.org) » Juste curieux de savoir pourquoi vous voulez utiliser OSM sur google maps? – tyczj

+1

Je suis juste limité par les Google Maps TOS. Mon application utilise des données privées, et je ne peux pas me permettre $ 10,000/year ... – Patrick

Répondre

21

Vous devez étendre la classe UrlTileProvider de sorte que vous pouvez définir l'URL pour les cartes en mosaïque de l'OSM et ajoutez une superposition de tuiles comme ça:

MyUrlTileProvider mTileProvider = new MyUrlTileProvider(256, 256, mUrl); 
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mTileProvider)); 

Avec l'URL pour OSM défini comme:

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; 
} 
} 

J'essaie maintenant d'obtenir ces cartes de tuiles OSM avec un mode hors ligne, donc si quelqu'un obtient une solution rapide, s'il vous plaît faites le moi savoir!

+0

Pourriez-vous développer cela avec une implémentation très basique? –

+0

Quelqu'un at-il réellement utilisé ceci? Je n'ai pas encore essayé – Patrick

+0

J'ai commencé l'exemple avec OSM. Fonctionne très bien. Ceci avec un mode hors ligne serait tueur. Juste besoin de savoir sur les problèmes de licence .... – Patrick

1

Lorsque vous utilisez cette approche, s'il vous plaît prêter attention à la tuile OSM Politique d'utilisation:

Questions connexes