WedX - журнал о программировании и компьютерных науках

Наложения плитки изменения карты Android без очистки ()

У меня есть карта с несколькими типами карт, которые вы можете выбрать (плитки Google Maps по умолчанию (в сети), плитки OSM (в автономном режиме), моя другая пользовательская карта (в автономном режиме)).

Также у меня есть 394 маркера на карте (но это всего лишь маленькая карта ОДНОГО города... не важно)

Проблема в том, что можно переключаться между типами карт Google, потому что для этого есть функция, без очистки карты и создания и вставки маркеров снова и снова.

Но если я выбираю, например, фрагменты карты OSM, они добавляются как наложение, поэтому, когда я хочу изменить их на другую карту, включая Google Maps, я должен вызвать mMap.clear(), а затем добавить все маркеры и различные фрагменты карты. или изменить тип карты Google.

Я знаю, что можно удалить определенный маркер, сохранив его в переменной, а затем вызвав для него метод remove(). Есть ли что-то подобное с наложением карт?

Я добавляю наложения фрагментов карты следующим образом:

mMap.addTileOverlay(new TileOverlayOptions().tileProvider(new CustomMapTileProvider(m_context,MAP_TYPE_OSM)));

  • Неважно, я как бы узнаю это, когда пишу вопрос. Решил как с маркерами. Создал переменную TileOverlay, в которой я смог сохранить TileOverlay, а затем вызвать для нее метод remove(), точно так же, как маркеры. Я не знаю, как я мог пропустить это. 02.04.2014
  • Спасибо @(Zdeněk Braun), я тоже пропустил это простое решение. Я предлагаю вам опубликовать обычный ответ на свой вопрос и выбрать его как принятый ответ, чтобы вы могли извлечь выгоду из репутации. 01.09.2016

Ответы:


1

Открыватель темы сам решил свой вопрос:

Вам необходимо сохранить возвращаемое значение метода gmap.addTileOverlay() в переменной и затем вызвать для него .remove() (как и в случае с маркерами) :

public class Map {
    private TileOverlay tileOverlay;
    ...

    void replaceOverlayTiles() {

        TileProvider tileProvider = new UrlTileProvider(256, 256) {
        @Override
        public URL getTileUrl(int x, int y, int zoom) {
            String s = String.format(Locale.GERMANY, "https://www.domain.com/xyz_tiles/%d/%d/%d.png", zoom, x, y);

            if (!checkTileExists(x, y, zoom))
                return null;

            try {
                return new URL(s);
            } catch (MalformedURLException e) {
                throw new AssertionError(e);
            }
        }

        private boolean checkTileExists(int x, int y, int zoom) {
            return !(zoom < 0 || zoom > 20);
        }
    };

    if (tileOverlay != null)
        tileOverlay.remove();

    tileOverlay = googleMap.addTileOverlay(new TileOverlayOptions().fadeIn(false).tileProvider(tileProvider));
}
16.12.2016
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]