Включение/выключение возможности взаимодействия пользователя с картой

Иногда, бывает необходимым совсем выключить возможность взаимодействия пользователя с картой, и спустя какое-то время включить обратно. Например, когда на карте выполняется какой-то сценарий, при котором пользователь не должен иметь возможность зумить карту, перемещать её, и как-то еще менять её состояние.

Для этого можно воспользоваться методами:

  • 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)