Я работаю над TileOverlay с Google Maps API для Android.Благодаря этому посту ( здесь ) я сгенерировал плитки из изображения png и поместил их в папку ресурсов Android в папке «плитки» (assets/tiles/myTiles.png
).Я не хочу загружать png плитки онлайн, я хочу, чтобы мое приложение работало без Интернета.Мои плитки названы в соответствии с этим шаблоном: x-y-zoom.png
.Вот мое onMapReady
:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
TileProvider tileProvider = new UrlTileProvider(256, 256) {
@Override
public URL getTileUrl(int x, int y, int zoom) {
String url = "file:///android_asset/tiles/" + x + "-" + y + "-" + zoom + ".png";
try {
return new URL(url);
} catch (MalformedURLException e) {
// ignore
}
return null;
}
};
TileOverlay tileOverlay = mMap.addTileOverlay(new TileOverlayOptions().tileProvider(tileProvider));
}
Но когда я запускаю приложение, карта появляется, а TileOverlay нет.
Что я пробовал и нашел:
- Я попытался записать
url
String и возвращенную строку String в существующий файл. - Я также попытался заменить свой URL известным сервисом плиток (
http://b.tile.openstreetmap.org/" + zoom + "/" + x + "/" + y + ".png
), и на этот раз,Появляется TileOverlay.
Так что я думаю, что данный URL не работает.На других форумах ( как здесь ) я понял, что URL, начинающиеся с file:///android_asset/
, работают только с AndroidWebView.
Но я нигде не нашел, как создать URL из файла ресурса.Как я могу это сделать?