Откройте Карты улиц с Android Google Maps Api v2

Можно ли использовать открытый поставщик карт улиц с новым API Google Maps V2 на Android? Если да, можете ли вы привести пример или документацию? Я быстро просмотрел документы и нашел UrlTileProvider(). , так что похоже, что это возможно.

Бонус: простое использование класса MapFragment с плитками OSM по-прежнему связано с TOS Google Maps?


comment
Просто любопытно, почему вы хотите использовать OSM вместо карт Google?   -  person tyczj    schedule 04.12.2012
comment
Я просто ограничен TOS Google Maps. В моем приложении используются личные данные, и я не могу позволить себе 10 000 долларов в год...   -  person Patrick    schedule 04.12.2012


Ответы (2)


Вам нужно расширить класс UrlTileProvider, чтобы вы могли определить URL-адрес для мозаичных карт OSM и добавить наложение плитки следующим образом:

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

С URL-адресом для OSM, определенным следующим образом:

String mUrl = "http://a.tile.openstreetmap.org/{z}/{x}/{y}.png";

Класс 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;
}
}

Сейчас я пытаюсь получить эти мозаичные карты из OSM в автономном режиме, поэтому, если у кого-то есть быстрое решение, пожалуйста, дайте мне знать!

person Emmanuel    schedule 12.12.2012
comment
Не могли бы вы расширить это с помощью очень простой реализации? - person Thomas Clowes; 16.12.2012
comment
Я получил образец и запустил его с помощью OSM. Работает отлично. Это с автономным режимом было бы убийцей. Просто нужно узнать о любых проблемах с лицензией.... - person Patrick; 02.02.2013
comment
@Patrick По-видимому, вы могли бы написать автономную версию, внедрив TileProvider и предоставив свой собственный кеш для SD? Здесь сказано здесь, что вам нужно быть в сети, когда вы запускаете приложение, хотя для v2. Позор: я не уверен, попробовать ли это или osmdroid - person Rob; 26.03.2013
comment
Мы используем osmdroid API с самого начала нашего проекта, и он хорошо работает с онлайн- и офлайн-данными. - person L. G.; 10.07.2013

При использовании этого подхода обратите внимание на политику использования листов OSM: http://wiki.openstreetmap.org/wiki/Tile_usage_policy

В частности, «Интенсивное использование (например, распространение приложения, использующего плитки с openstreetmap.org) запрещено без предварительного разрешения».

person Paamand    schedule 12.05.2015