Теперь приложение поддерживает интерактивное добавление плейсмарков! Пользователи могут нажимать на карту в любом месте, чтобы создавать новые метки.
- Нажатие на карту: Создает новую плейсмарку в указанном месте
- Автоматическое именование: Метки получают уникальные имена
- Визуальное отображение: Новые плейсмарки сразу видны на карте
- Просмотр: Список всех созданных меток в нижней панели
- Удаление: Индивидуальное удаление каждой метки
- Очистка: Кнопка 🗑️ для удаления всех пользовательских меток
- Инструкция: Подсказка для новых пользователей
- Панель меток: Отображение координат и названий
- Кнопки управления: Быстрый доступ к функциям
- Нажмите на карту в любом месте
- Автоматически создается новая плейсмарка
- Метка появляется в списке пользовательских плейсмарков
- Удалить одну метку: Нажмите на иконку 🗑️ рядом с меткой
- Удалить все метки: Нажмите на красную кнопку 🗑️ справа
- Просмотр координат: Координаты отображаются под названием метки
mapWindow.map.addMapTapListener(object : MapTapListener {
override fun onMapTap(map: Map, point: Point) {
// Создание новой плейсмарки
val placemark = map.mapObjects.addPlacemark(point)
// Настройка иконки и стиля
// Уведомление о добавлении
}
})data class CustomPlacemark(
val id: String, // Уникальный идентификатор
val title: String, // Название метки
val position: Point, // Координаты
val timestamp: Long // Время создания
)- MapScreenMutableState: Хранит список пользовательских плейсмарков
- MapState: Управляет нативными объектами карты
- Callback система: Уведомляет UI об изменениях
- Добавлен метод
addPlacemarkAtPoint() - Добавлен метод
addPlacemarkAtScreenPoint() - Добавлено управление пользовательскими плейсмарками
- Добавлен
MapTapListenerдля обработки нажатий - Автоматическое создание плейсмарок при нажатии
- Добавлен класс
CustomPlacemark - Обновлен UI для отображения пользовательских меток
- Добавлены кнопки управления
- Конфигурация анимаций остается без изменений
- ✅ Android: Полная поддержка всех функций
⚠️ iOS: Базовая поддержка через общие методы- ✅ Web: Поддержка через общие методы
- Проверьте, что карта инициализирована
- Убедитесь, что
MapTapListenerдобавлен - Проверьте логи на наличие ошибок
- Проверьте состояние
MapScreenMutableState - Убедитесь, что callback
onPlacemarkAddedнастроен - Проверьте UI компоненты на корректность
val point = PointFactory.create(59.9343, 30.3061)
mapState.addPlacemarkAtPoint(point, "Исаакиевский собор")mapScreenMutableState.clearAllCustomPlacemarks()val placemarks = mapScreenMutableState.getCustomPlacemarks()- Редактирование меток: Возможность изменения названия и описания
- Категории меток: Группировка по типам
- Экспорт/импорт: Сохранение и загрузка пользовательских меток
- Поиск: Фильтрация меток по названию или координатам
- Стили: Различные иконки для разных типов меток