与Android谷歌地图API V2开放街道地图(Open Street Maps with And

2019-07-04 11:45发布

是否有可能使用开放街道地图提供商与Android上的新的谷歌地图V2 API? 如果是这样,你可以提供一个例子,或文档? 我已经在文档快速看了一下,发现UrlTileProvider() ,所以它看起来可能这是可能的。

奖金:是简单地使用由谷歌地图服务条款仍然束缚OSM瓦片MapFragment类?

Answer 1:

您需要扩展UrlTileProvider类,所以你可以定义OSM地图平铺的网址,并添加一个方块叠加这样的:

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

随着网址这样的定义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的地图平铺与离线模式,如果任何人得到一个快速的解决方案,请让我知道!



Answer 2:

使用此方法时,请注意OSM瓷砖使用政策: http://wiki.openstreetmap.org/wiki/Tile_usage_policy

具体地“大量使用(例如分发使用瓦片从openstreetmap.org一个应用程序)是被禁止的未经允许”



文章来源: Open Street Maps with Android Google Maps Api v2