Androidの新しいGoogleMapsV2 Apiでオープンストリートマッププロバイダーを使用することは可能ですか?もしそうなら、例やドキュメントを提供できますか?私はドキュメントをすばやく調べて、UrlTileProvider()を見つけたので、これが可能である可能性が高いようです。
ボーナス:単にGoogle Maps TOSによってバインドされたOSMタイルでMapFragmentクラスを使用していますか?
Androidの新しいGoogleMapsV2 Apiでオープンストリートマッププロバイダーを使用することは可能ですか?もしそうなら、例やドキュメントを提供できますか?私はドキュメントをすばやく調べて、UrlTileProvider()を見つけたので、これが可能である可能性が高いようです。
ボーナス:単にGoogle Maps TOSによってバインドされたOSMタイルでMapFragmentクラスを使用していますか?
UrlTileProviderクラスを拡張して、OSMタイルマップのURLを定義し、次のようなタイルオーバーレイを追加できるようにする必要があります。
MyUrlTileProvider mTileProvider = new MyUrlTileProvider(256, 256, mUrl);
mMap.addTileOverlay(new TileOverlayOptions().tileProvider(mTileProvider));
OSMのURLは次のように定義されています:
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からこれらのタイルマップを取得しようとしています。誰かが迅速な解決策を入手した場合は、私に知らせてください!
このアプローチを使用する場合は、OSMタイル使用ポリシーに注意してください:http ://wiki.openstreetmap.org/wiki/Tile_usage_policy
具体的には、「事前の許可なしに大量に使用すること(たとえば、openstreetmap.orgからタイルを使用するアプリを配布すること)は禁止されています」