Введение

Виджет пожаров на сторонний сайт загружается при помощи менеджера загрузки модулей ГеоМиксера. Сам виджет можно разделить на календарик, при помощи которого пользователь выбираем желаемый диапазон дат, и список пожарных данных.

Минимальный вариант

//загружаем карту
createFlashMap(document.getElementById('map'), function(map)
{
    //Говорим, откуда брать все модули, которые могут нам потребоваться
    gmxCore.setDefaultModulesHost('http://maps.kosmosnimki.ru/api/');
 
    //Загружаем модуль пожаров
    gmxCore.loadModule('FireMapplet', 'http://maps.kosmosnimki.ru/api/plugins/FireMapplet.js',
        function(mFire)
        {
            //Создаём виджет пожаров, помещаем его в контейнер с id "fires"
            new mFire.FireControl2(map, {container: 'fires'});
        }
    )
});
//загружаем карту
createFlashMap(document.getElementById('map'), function(map)
{
    //Говорим, откуда брать все модули, которые могут нам потребоваться
    gmxCore.setDefaultModulesHost('http://maps.kosmosnimki.ru/api/');

    //Загружаем модуль пожаров
    gmxCore.loadModule('FireMapplet', 'http://maps.kosmosnimki.ru/api/plugins/FireMapplet.js',
        function(mFire)
        {
            //Создаём виджет пожаров, помещаем его в контейнер с id "fires"
            new mFire.FireControl2(map, {container: 'fires'});
        }
    )
});

Виджет пожаров

Для использования API пожаров нужно подгрузить модуль “FireMapplet”:

gmxCore.loadModule('FireMapplet', 'http://maps.kosmosnimki.ru/api/plugins/FireMapplet.js',
    function(mFire)
    {
        //mFire - модуль пожаров
    }
)
gmxCore.loadModule('FireMapplet', 'http://maps.kosmosnimki.ru/api/plugins/FireMapplet.js',
    function(mFire)
    {
        //mFire - модуль пожаров
    }
)

Все зависимые модули и файлы будут подгруженны автоматически.

Создание виджета пожаров

new mFire.FireControl2(map, params)
new mFire.FireControl2(map, params)

где

  • map – карта, переданная в callback ф-ции createFlashMap()
  • params – параметры пожарного виджета

Параметры:

  • container {string | DOMElement} – место, куда прикрепляется виджет
  • calendar: {Calendar} – каледарик. Если не указан, будет создан автоматически с параметрами по умолчанию. См. описание ниже
  • data: {string} – описание, какие данные нужно показывать. Формат см. ниже.
  • initExtent: {object} – задаёт глобальные ограничения на показ пожарной информации. Объект со свойствами minX, maxX, minY и maxY.
  • minHotspotZoom: {integer} – задаёт минимальный зум, с которого показываются точки пожаров.
  • minGeomZoom: {integer} – задаёт минимальный зум, с которого показываются контуры пожаров.

Формат описания данных:

<state1><name1> <state2><name2>…<stateN><nameN>

где

  • stateN – модификатор состояние видимости. Может быть
    • “+” – показывать тип данных в списке и сразу на экране,
    • “-” – убрать тип данных из списков и с экрана
    • “!” – показать тип данных в списке, но по умолчанию на экране не показывать
  • nameN – имя типа данных. На данный момент поддерживается два типа данных:
    • fires – пожары СканЭкс на территорию России
    • firesGlobal – пожары FIRMS на весь мир
    • images – космоснимки “MODIS”

Примеры описания данных:

  • “+fires -images”: показать только пожары
  • “!fires !images”: показать и пожары и снимки, но по умолчанию на карте их не рисовать

Календарик

Календарик для выбора периода наблюдения является независимым виджетом и может быть использовать отдельно.

Он содержится в модуле DateTimePeriodControl как класс Calendar и загружается при помощи загрузчика модулей ГеоМиксера (в случае использования модуля пожаров это происходит автоматически):

gmxCore.loadModule('DateTimePeriodControl', 'http://maps.kosmosnimki.ru/api/DateTimePeriodControl.js',
    function(module)
    {
        //module.Calendar - календарь
    }
)
gmxCore.loadModule('DateTimePeriodControl', 'http://maps.kosmosnimki.ru/api/DateTimePeriodControl.js',
    function(module)
    {
        //module.Calendar - календарь
    }
)

Создание календарика

var calendar = new module.Calendar(name, params)
var calendar = new module.Calendar(name, params)

где

  • name {string} - уникальное имя календарика,
  • params {object} - параметры календарика.

Календарик имеет следующие параметры:

  • dateMin, dateMax – {Date} граничные даты для календарей
  • dateFormat – {String} формат даты
  • resourceHost – {String} откуда брать иконки
  • minimized – {bool} показывать ли минимизированный или развёрнутый виджет в начале
  • showSwitcher – {bool} показывать ли иконку для разворачивания/сворачивания периода
  • dateBegin, dateEnd – {Date} текущие даты для календарей
  • showTime – {bool} показывать ли время (default: true)
  • container – {string || DOMElement} куда добавлять календарик

Методы календарика

  • getDateBegin(), getDateEnd() - получение начальной и конечной даты
  • setDateBegin(date), setDateEnd(date) - задание начальной и конечной даты
  • setDateMin(date), setDateMax(date) - задание пределов выбора дат
  • setShowTime(bool) - показывать ли информацию со временем снизу виджета

События календарика

Календарик поддерживает jQuery событие “change”, например:

$(calendar).bind('change', function()
{
 //обработка изменения периода времени
})
$(calendar).bind('change', function()
{
 //обработка изменения периода времени
})

Примеры

Минимальный вариант. Наиболее простой варианта со всеми настройками по умолчанию.

Отдельно календарик. Все настройки по умолчанию, но календарик создаётся отдельно.

Все настройки. Перечислены почти все настройки календарика и виджета пожаров.