Включение/выключение возможности взаимодействия пользователя с картой
Иногда, бывает необходимым совсем выключить возможность взаимодействия пользователя с картой, и спустя какое-то время включить обратно. Например, когда на карте выполняется какой-то сценарий, при котором пользователь не должен иметь возможность зумить карту, перемещать её, и как-то еще менять её состояние.
Для этого можно воспользоваться методами:
leafletMap.flexberryMap.interaction.disable()
leafletMap.flexberryMap.interaction.enable()
А чтобы проверить включено ли сейчас взаимодействие пользователя с картой можно воспользоваться методом:
leafletMap.flexberryMap.interaction.isEnabled()
Отображение/скрытие индикатора выполнения длительной операции на карте
Бывают ситуации, когда в процессе работы с картой пользователь запускает какую-то длительную операцию, и нужно дождаться её завершения прежде чем пользователь сможет продолжить работу с картой, например при использовании инструмента идентификации. В этом случае нужно показать пользователю идикатор выполнения запущенной операции, и скрыть его по заверщению операции.
Для этого можно воспользоваться следующими методами:
leafletMap.flexberryMap.loader.show(options)
leafletMap.flexberryMap.loader.hide(options)
Оба метода принимают на вход необязательный объект options
, содержащий одну опцию:
options.content
- это строка с подписью, которая будет отображаться под индикатором загрузки. Т.е. если хочется показать пользователю индикатор загрузки с подписьюЗагрузка...
, то нужно вызвать методshow
следующим образом:leafletMap.flexberryMap.loader.show({ content: 'Загрузка...' })
, а чтобы убрать эту подпись сразу при скрытии индикатора нужно вызывть методhide
вот так:leafletMap.flexberryMap.loader.hide({ content: '' })
.
Чтобы изменить подпись, которая отображается под индикатором загрузки, предусмотрен метод:
leafletMap.flexberryMap.loader.setContent(content)
А чтобы проверить отображается ли индикатор в данный момент можно воспользоваться методом:
leafletMap.flexberryMap.loader.isShown()
Включение/выключение инструментов карты
Для карты также предусмотрено API включения и выключения её инструментов.
Для включения какого-либо инструмента реализован метод:
leafletMap.flexberryMap.tools.enable(mapToolName, mapToolProperties)
. Он принимает на вход обязательный параметрmapToolName
- это наименование того инструмента изapp\map-tools
, который требуется включить, и необязательный параметрmapToolProperties
- это объект со свойствами инструмента, которые нужно проинициализировать перед его включением (это именно свойства экзепляра инструмента). При вызове метода будет создан экзепляр инструмента, если он еще не был создан ранее, а если экземпляр уже был когда-то создан, то он и будет взят.
Для выключения текущего инструмента реализован метод:
leafletMap.flexberryMap.tools.disable()
. Он не принимает никаких параметров, выключает тот инструмент, который включен в данный момент, а вместо него включает инструмент по-умолчанию.
Чтобы получить текущий инструмент можно воспользоваться методом:
leafletMap.flexberryMap.tools.getEnabled()
А для получения инструмента по-умолчанию можно использовать метод:
leafletMap.flexberryMap.tools.getDefault()
При инициализации карты инструментом по-умолчанию назначается app\map-tools\drag
(инструмент перемещения по карте).
Но при необходимости можно назначить и свой, воспользовавшись методом:
leafletMap.flexberryMap.tools.setDefault(mapToolName, mapToolProperties)
. Он принимает на вход обязательный параметрmapToolName
- это наименование того инструмента изapp\map-tools
, который требуется назначить инструментом по-умолчанию, и необязательный параметрmapToolProperties
- это объект со свойствами инструмента, которые нужно проинициализировать перед его включением (это именно свойства экзепляра инструмента). При вызове метода будет создан экзепляр инструмента, если он еще не был создан ранее, а если экземпляр уже был когда-то создан, то он и будет взят.
Для того, чтобы установить свойства какому-то инструменту, при этом не включая и не выключая его, можно использовать метод:
leafletMap.flexberryMap.tools.setProperties(mapToolName, mapToolProperties)
А если вдруг понадобится избавиться от ранее созданого экземпляра какого-либо инструмента, то для этого есть метод:
leafletMap.flexberryMap.tools.destroy(mapToolName)
Выполнние команд карты
Помимо инструментов, которые остаются активными после включения до пех пор пока не быдут выключены,
у карты имеются команды app\map-commands
. Они так же присутствуют на панели инструментов карты, но отличаются от инструментов тем,
что не остаются активными пока не будет выключены, они просто выполняют какие-то действия над картой один раз, никак пи этом
не влияя на инструменты. Примеры таких команд: поиск текущего местоположения, экспорт или печать карты, и т.п.
Для работы с командами предусмотерно API аналогичное API инструментов.
Для выполнения какой-либо команды реализован метод:
leafletMap.flexberryMap.commands.execute(mapCommandName, mapCommandProperties, mapCommandExecutionOptions)
. Он принимает на вход обязательный параметрmapCommandName
- это наименование той команды изapp\map-commands
, которую требуется вполнить, и необязательные параметрыmapCommandProperties
- это объект со свойствами команды, которые нужно проинициализировать перед её выполнением (это именно свойства экзепляра команды), а также параметрmapCommandExecutionOptions
- это уже опции, которые будет переданы в методexecute
самой команды. При вызове метода будет создан экзепляр команды, если он еще не был создан ранее, а если экземпляр уже был когда-то создан, то он и будет взят.
Для того, чтобы установить свойства какому-то инструменту, при этом не включая и не выключая его, можно использовать метод:
leafletMap.flexberryMap.commands.setProperties(mapCommandName, mapCommandProperties)
А если вдруг понадобится избавиться от ранее созданого экземпляра какой-либо команды, то для этого есть метод:
leafletMap.flexberryMap.commands.destroy(mapCommandName)