开放街道地图与Android谷歌地图API第2版 [英] Open Street Maps with Android Google Maps Api v2

查看:151
本文介绍了开放街道地图与Android谷歌地图API第2版的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能使用开放街道地图提供商与新的谷歌地图第2版API在Android?如果是这样你能提供一个例子,或文档?我也很快看了看文档,发现<一href="https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/UrlTileProvider">UrlTileProvider() ,所以它看起来可能这是可能的。

Is it possible to use an open street map provider with the new Google Maps V2 Api on Android? If so can you provide an example, or documentation? I have looked quickly at the docs and found UrlTileProvider() , so it looks likely this is possible.

奖金:是仅使用了OSM瓷砖的谷歌地图服务条款

Bonus: Is simply using the MapFragment class with OSM tiles still bound by the Google Maps TOS?

推荐答案

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

You need to extend the UrlTileProvider class so you can define the URL for OSM tiled maps and add a tile overlay like that :

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

通过这样的定义OSM的网址:

With the url for OSM defined like that :

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

在MyUrlTileProvider类:

The MyUrlTileProvider class :

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的地图平铺使用离线模式,如果任何人得到一个快速的解决方案,请让我知道!

I am now trying to get those tiled maps from OSM with an Offline Mode so if anyone get a quick solution, please let me know!

这篇关于开放街道地图与Android谷歌地图API第2版的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆