Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:development:modules:maps [2015/11/03 14:45] anton [Обведение района] |
abills:docs:development:modules:maps [2018/10/19 14:23] (текущий) larysa |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | **''Страница перенесена в Confluence''** | ||
+ | [[http://abills.net.ua:8090/pages/viewpage.action?pageId=9601527]] | ||
+ | |||
===== Maps Javascript модули ===== | ===== Maps Javascript модули ===== | ||
Скрипты для карт лежат в /js/map/ | Скрипты для карт лежат в /js/map/ | ||
* maps.js - Основной скрипт для карт. Отвечает за общую логику и интерфейс для всех типов карт | * maps.js - Основной скрипт для карт. Отвечает за общую логику и интерфейс для всех типов карт | ||
* maps-google.js - Скрипт реализации интерфейса для Google Maps. | * maps-google.js - Скрипт реализации интерфейса для Google Maps. | ||
- | * maps-google-markers.js - Библиотека для создания основных обьектов карт: | + | * maps-google-drawing.js - Библиотека для создания основных обьектов карт: |
* Маркеры | * Маркеры | ||
- | * [TODO] InfoWindows | + | * InfoWindows |
- | * [TODO] SearchRequests | + | |
- | + | ||
- | JS - модули построены на модели MVC, что определяет структуру скриптов. | + | |
Каждый JS - модуль карт реализует: | Каждый JS - модуль карт реализует: | ||
Строка 69: | Строка 69: | ||
При инициализации карты, создаётся глобальный объект ''aDistrictPolygoner.'' \\ | При инициализации карты, создаётся глобальный объект ''aDistrictPolygoner.'' \\ | ||
Все рассчитанные полигоны сохраняются во внутреннем массиве ''polygonsArray''. | Все рассчитанные полигоны сохраняются во внутреннем массиве ''polygonsArray''. | ||
+ | |||
+ | ==== Отображение событий на карте ==== | ||
+ | Модуль Maps при открытой вкладке с картой, расширяет AMessageChecker для приёма сообщений с типом ''MAP_EVENT''. | ||
+ | |||
+ | Формат сообщений: | ||
+ | <code> | ||
+ | { | ||
+ | "TYPE": "MAP_EVENT", | ||
+ | "OBJECTS": [ | ||
+ | { | ||
+ | "ID" : $point->{id}, | ||
+ | "MARKER": { | ||
+ | "ID" : $point->{id}, | ||
+ | "COORDX" : $point->{coordy}, | ||
+ | "COORDY" : $point->{coordx}, | ||
+ | "INFO" : "<strong>$lang{TYPE}</strong>: $point->{type_name} <br> <strong>$lang{NAME}</strong>: $point->{name}", | ||
+ | "TYPE" : "nas_green" | ||
+ | }, | ||
+ | "LAYER_ID" : 6 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Соответсвует формату, которым передаются обьекты на карту. Если обьект не имеет установелнного слоя, нужно указывать ''6'' (Слой "Обьекты"), | ||
+ | |||
+ | ==== События карты ==== | ||
+ | Во время загрузки и настройки карты вызываются определённые события.\\ | ||
+ | Асинхронная обработка реализуется благодаря PubSub модели обьектом ''Events''. | ||
+ | |||
+ | === Последовательность событий во время загрузки карты === | ||
+ | ^ onbeforemapcreate |Перед загрузкой скриптов карты| | ||
+ | ^ mapsloaded |Происходит после загрузки внешних скриптов карты| | ||
+ | ^ layersready |После формирования слоёв карты| | ||
+ | ^ controlsready |После формирования панели управления (кнопок)| | ||
+ | ^ mapsconfigured |После настройки карты и обработки дополнительных условий| | ||
+ | ^ controlblockshowed |Показана панель управления| | ||
+ | ^ controlblockcached |Ссылки на DOM-элементы кнопок панели управления сохранены в кеш| | ||
+ | ^ new_point_rendered_%LAYER_ID% |Происходит каждый раз при рендеринге точки слоя| | ||
+ | ^ billingdefinedlayersshowed |После обработки ''ObjectsArray'' (обьекты, переданные в странице)| | ||
+ | ^ layerenabled, %LAYER_ID% |После включения слоя, %LAYER_ID% передаётся аргументом функции-обработчику события| | ||
+ | ^ layerdisabled, %LAYER_ID% || | ||
+ | |||
+ | === Дополнительные события, возникающие во время работы === | ||
+ | ^ mapsclick, (event) | Возникает каждый раз при клике по карте, координаты можно получить как (event.latLng.lat(), event.latLng.lng())| | ||
+ | ^ savingmapconfig |При закрытии страницы, во время сохранения настроек карты| | ||
+ | ^ clearmapconfig |Перед очисткой сохранённой конфигурации| | ||
+ | ^ realpositionretrieved, position |Получены координаты от браузера клиента| | ||
+ | ^ realpositionfailed |Произошла ошибка получения координат| | ||
+ | |||
+ | === События редактирования пользовательских слоев === | ||
+ | ^ currentmapobjectfinished | При готовности слоя отправлять обьекты (Пользователь подтвердил завершение редактирования)| | ||
+ | ^ proceedingaddingpoints | (Пользователь не подтвердил завершение редактирования)| | ||
+ | ^ point_removed_%LAYER_ID% | Отправлен запрос на удаление точки слоя %LAYER_ID% | | ||
+ | |||
+ |