Краткое описание SingleMap
"Single map" — это специализированная библиотека, предназначенная для динамической отрисовки объектов и маршрутов на карте.
Используя элемент HTML canvas, данная библиотека позволяет наносить обозначения объектов и заранее подготовленные маршруты, включая изображения с
линиями маршрутов, которые имеют прозрачный фон и могут включать любую другую информацию и обозначения.
Эта карта нацелена на визуализацию одной конкретной области земли, что делает её идеальным инструментом для разнообразных приложений,
требующих отображения географической информации. Библиотека "Single map" использует класс "EventEmitter", позволяющий генерировать события карты.
Это дает возможность интеграции необходимых функций и обработки взаимодействий, улучшая общий пользовательский опыт.
С помощью "Single map" разработчики могут легко:
- Нанести объекты и маршруты на карту, адаптируя её под специфические требования.
- Реализовать интерактивные элементы, которые реагируют на действия пользователей.
- Внедрить кастомные функции, связанные с изменением состояния карты или объектов на ней.
Базовый пример использования SingleMap:
- Подключаем библиотеку
- Создаём объект класса SingleMap
- Добавляем callback к событию объекта SingleMap "maponloaded"
- В этот callback добавляем обозначения объектов
- Вызываем функцию рисования обозначения объекта в callback
- Привязываем ссылку к добавленному объекту
- Инициализируем карту
Давайте напишем немного кода:
Список функций:
- constructor() - конструктор класса SingleMap - базовая инициализация свойств canvas, ctx, objects, routes, eventEmitter, backgroundImagePath
- init() - инициализация свойств карты и вызов 'maponloaded'
- drawBackrground() - рисует карту без обозначений и маршрутов
- parseCoordsToCurrentSizeCoords(x, y) - преобразует координаты к canvas с текущими размерами
- drawCircle(x, y, specialRadius, specialColor) - нарисовать только круг
- drawText(text, x, y, specialColor) - нарисовать только текст
- setCanvasSizeToBackgroundImageSize() - оставить изначальный размер canvas по размеру изображения
- addEventListener(eventName, callback) - добавить callback к событию SingleMap
- addObjectToMemory(id, x, y, title, specialRadius) - добавить объект в память SingleMap
- addRouteToMemory(id, routeImagePath, title) - добавить маршрут в память SingleMap
- getObjectById(id) - получить информацию об объекте по id
- getRouteById(id) - получить информацию о маршруте по id
- bindLinkToObjectMark(id, route) - привязать ссылку к объекту в памяти SingleMap (id объекта в памяти; route: путь - ссылка)
- drawObjectMark(id, specialColor) - нарисовать объект по id (id объекта в памяти; specialColor - если указать особый цвет, то заполнит круг указанным цветом)
- drawRoute(id) - нарисовать маршрут по id (id маршрута в памяти)
Базовые события:
- mapmousemove - движение мыши на карте
- mapclick - нажатие кнопки мыши на карте
- maponloaded - изображение готово к отрисовке, полностью проинициализированно
Список свойств:
- canvas - объект canvas
- ctx - 2d контекст объекта canvas
- objects - множество обозначений объектов
- routes - множество маршрутов
- eventEmitter - для того, чтобы создавать свои события и вызывать события с помощью emit('myEventName')
- backgroundImagePath - путь к изображению (если изменить путь, то для отрисовки нового изображения нужно будет вызвать init())
- backgroundImage - само изображение карты, которое отрисовывет canvas
- originalBackgroundImageWidth - начальная ширина изображения в пикселях
- originalBackgroundImageHeight - начальная высота изображения в пикселях
- resultBackgroundImageWidth - итоговая ширина изображения в пикселях с учетом размера экрана
- resultBackgroundImageHeight - итоговая высота изображения в пикселях с учетом размера экрана
- circleRadius - радиус круга обозначения объекта на карте
- originalFontSize - размер шрифта подписей к обозначениям на карте