URL-адрес файла активов для TileOverlay - PullRequest
0 голосов
/ 14 мая 2018

Я работаю над 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 из файла ресурса.Как я могу это сделать?

...