15

Czy można korzystać z otwartego dostawcy map ulicznych z nowym Google Maps V2 Api na Androida? Jeśli tak, możesz podać przykład lub dokumentację? Szybko obejrzałem dokumenty i znalazłem UrlTileProvider(), więc wygląda na to, że jest to możliwe.Open Street Maps z Androidem Google Maps Api v2

Bonus: Czy po prostu używasz klasy MapFragment z płytami OSM, które są nadal związane z Warunkami korzystania z Map Google?

+1

Ciekawe, dlaczego chcesz używać OSM na mapach google? – tyczj

+1

Jestem po prostu ograniczony przez Google Maps TOS. Moja aplikacja wykorzystuje prywatne dane i nie mogę sobie pozwolić na 10 000 USD rocznie ... – Patrick

Odpowiedz

21

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

+0

Czy mógłbyś rozwinąć to w bardzo podstawowej wersji? –

+0

ma ktoś faktycznie używane to? Jeszcze tego nie próbowałem. – Patrick

+0

Dostałem próbkę i działałem z OSM. Działa świetnie. To z trybem offline byłoby zabójcą. Po prostu musisz dowiedzieć się o wszelkich problemach licencyjnych ... – Patrick

1

Przy zastosowaniu tej metody, należy zwrócić uwagę na politykę OSM Dachówka Zastosowanie: http://wiki.openstreetmap.org/wiki/Tile_usage_policy

specyficznie „intensywnego użytkowania (np dystrybucji aplikacji, która korzysta z płytki z openstreetmap.org) jest zabronione bez wcześniejszej zgody”