Я уже проверил этот ответ , но в примере ничего не сказано, кроме показать серые плитки (я в автономном режиме) для zoom уровень, превышающий установленный мной предел (4 в моем случае) ...
OnlineTileSourceBase source = new XYTileSource("tiles", ResourceProxy.string.offline_mode, 0, 4, 256, ".png", "");
Следующий код показывает maxZoom=4
:
int zoomLevel = source.getMaximumZoomLevel();
Toast.makeText(this, "maxZoom=" + zoomLevel, Toast.LENGTH_SHORT).show();
Для уровней масштабирования от 0 до 4 мой код работает должным образом: он загружает фрагменты карты с SD-карты. Мое понимание проблемы состоит в том, что код показывает все плитки для каждого найденного увеличения, а когда другие масштабы не найдены, он все еще увеличивается.
API четко определяет настройку максимального уровня масштабирования в конструкторе XYTileSource
(final int aZoomMaxLevel
):
public XYTileSource(final String aName, final string aResourceId, final int aZoomMinLevel,
final int aZoomMaxLevel, final int aTileSizePixels, final String aImageFilenameEnding,
final String... aBaseUrl)
Есть ли обходные пути? Что я делаю неправильно? Как я могу заблокировать увеличение, чтобы пользователь не смог пройти уровень 4?