开放街道地图与Android谷歌地图API第2版 [英] Open Street Maps with Android Google Maps Api v2
问题描述
是否有可能使用开放街道地图提供商与新的谷歌地图第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屋!