Как настроить поиск в Yandex Mapkit, чтобы не удалялись другие метки
Есть следующая задача:
- Вывести на карту множество меток из json.
- Настроить поиск по адресу и отмечать меткой найденное.
Пункт 1 уже сделан. Пытаюсь подключить поиск согласно данному примеру. Вроде работает, но если двигать карту, то все метки ранее добавленные из json удаляются. Я понимаю, что это происходит, потому что в коде есть прямое указание на удаление, которое необходимо для работы поиска.
Вопрос: можно ли как-то отделить метки из json и метки, которые ставятся в результате работы поиска и удалять/добавлять только последние, а первые не трогать? Помогут ли в этом коллекции или они для другого?
Ответы (1 шт):
Автор решения: all_possible
→ Ссылка
Решено посредством создания отдельной коллекции для работы с поиском:
// Объявление коллекции
MapObjectCollection searchObjectCollection;
...
// Добавление коллекции (в onCreate)
searchObjectCollection = mapView.getMap().getMapObjects().addCollection();
...
@Override
public void onSearchResponse(Response response) {
searchObjectCollection.clear();
for (GeoObjectCollection.Item searchResult : response.getCollection().getChildren()) {
Point resultLocation = searchResult.getObj().getGeometry().get(0).getPoint();
if (resultLocation != null) {
searchObjectCollection.addPlacemark(resultLocation,
ImageProvider.fromResource(this, R.drawable.search_result));
}
}
}