API карты пожаров
- Использование REST API GeoMixer
- Данные о пожарах
- Пример использования
- Условия использования
- Виджеты карты пожаров
Использование REST API ГеоМиксер
Аутентификация
На данный момент для доступа к закрытым пользовательским данным и выполнения ряда операций запросы должны содержать API-ключ. Важно, чтобы он оставался секретным. Получить ключ можно, зарегистрировавшись на my.kosmosnimki.ru
Осуществление вызовов
Вызовы осуществляются посредством HTTP-запросов, различия между POST и GET запросами на данный момент нет. Методы PUT и DELETE не поддерживаются. Параметры могут быть переданы как в URL, так и в теле POST-запроса. Названия параметров не зависят от регистра. Результат выполнения операции содержится в коде состояния HTTP. Перечень возможных кодов приведен в таблице ниже. Если результат содержит данные, то они возвращаются в теле запроса в указанном формате. На данный момент поддерживаются формат GeoJson (по умолчанию) и внутренний формат GeoMixer.
Коды результатов ответа
В REST API используются следующие коды HTTP в качестве результатов:
| Код результата | Когда используется |
| 200 OK | Возвращается в случае успешно выполненной операции, тело, как правило, содержит дополнительную информацию. |
| 204 No content | Возвращается в случае успешно выполненной операции, когда результат не предусмотрен. Например, в случае удаления слоя. |
| 400 Bad Request | Возвращается в случае, если в запросе содержится ошибка, например, неправильно задан один из параметров. |
| 403 Forbidden | Возвращается в случае неавторизованного доступа (когда для доступа необходим API-ключ, но он не указан либо указан неправильный ключ). |
| 404 Not Found | Возвращается в случае, если не найден какой-либо объект, участвующий в запросе, например, слой. |
| 500 Internal Server Error | Возвращается в случае ошибки, произошедшей при работе сервера. |
| 501 Not Implemented | Возвращается в случае, если запрошенная операция не реализована. |
Работа со слоями
Здесь и далее, layer_id обозначает 16-ти символьный идентификатор слоя. Параметры, помеченные символом “*”, являются обязательными.
URL:
| Ссылка | /rest/ver1/layers/layer_id/search |
Параметры запроса:
| Параметр | Тип | Описание |
| api_key | String | API-ключ пользователя |
| query | String | Запрос, задающий критерии поиска |
| columns | String | Названия столбцов атрибутов, включаемых в результат; указываются через запятую |
| orderby | String | Название столбца для сортировки результата |
| orderdirection | String | Порядок сортировки; возможные значения: asc, desc |
| skiprecords | Integer | Количество пропускаемых объектов в результате |
| limitrecords | Integer | Максимальное количество объектов в результате; в любом случае сервер вернет не более 1000 объектов |
| out_cs | String | Формат выходной системы координат, возможные значения: EPSG:4326 (по умолчанию), EPSG:3395 |
| border | String | Геометрия в формате GeoJson или WKT, ограничивающая область поиска |
| borderFromLayer (borderID) | String | передача границы border по ссылке. Перекрывает параметр border. Указывает слой из которого следует использовать геометрию. BorderFromLayer – идентификатор слоя. Если слой растровый, то используется граница растрового слоя, если слой векторный, требуется указать BorderId – идентификатор объекта в векторном слое, тогда будет использоваться граница этого объекта. Для каталогов растров можно использовать значение BorderFromLayer=GMX_RasterCatalogID или BorderFromLayer=ID_каталога&BorderId=ID_объекта_в_каталоге |
| border_cs | String | Формат входной системы координат параметра border, возможные значения: EPSG:4326 (по умолчанию), EPSG:3395 |
| count | String | Возможные значения: true/false (по умолчанию) определяют, что вернет запрос: только количество объектов в выборке (true) или же сами объекты (false). |
Данные о пожарах
На данный момент существует два источника данных:
- пожары СКАНЭКС (Россия)
- пожары FIRMS (глобальные)
На основе обоих источников формируются два типа слоев:
- термоточки пожаров (все термоточки за указанный период и время)
- кластеры пожаров (сгруппированные термоточки по дням и за выбранный период)
Ниже приведены примеры запросов и ID для всех типов слоев:
Пожары СКАНЭКС
Пример запроса за термоточками:
Параметры ответа сервера:
“HotSpotID”,”Sample”,”DataSource” – являются служебными параметрами в системе Kosmosnimki
| “Platform” | String | спутник Terra / Aqua / NPP |
| “Confidence” | integer | на основе относительной яркости термоточки, значения 0-100 |
| “Power” | float | на основе абсолютной яркости термоточки (не рассчитывается для NPP!) |
| “DateTime” | datetime | Unix timestamp / yyyy-mm-dd hh:mm:ss |
| “ClusterID” | ID кластера, которому принадлежит термоточка | |
| “FireType” | integer | null
Битовая маска признаков со следующими свойствами: * бит 0 – признак техногенного источника * бит 1 – признак пожара на торфянниках * бит 2 – признак пожара вблизи города Варианты: * 1 (001) – техногенный источник * 2 (010) – пожар на торфяннике * 3 (011) – техногенный пожар на торфяннике * 4 (100) – пожар вблизи города * 5 (101) – техногенный источник вблизи города * 6 (110) – источник на торфяннике вблизи города * 7 (111) – техногенный источник на торфяннике вблизи города |
| “Town” | string | Название населенного пункта в радиусе < 5км |
| “geomixergeojson” | geometry | Координаты термоточки (Mercator / Lat, Lon) |
Пример запроса за кластерами* пожаров:
*С помощью кластеризации выделены наиболее крупные очаги, которые наиболее вероятно являются пожарами. Заодно уменьшается кол-во объектов, которые надо отрисовывать на карте.
Пожары FIRMS
Если мы захотим показывать еще и глобальные пожары по всему миру – нужно будет просто добавить еще один запрос и поменять ID слоя. Но сейчас этот слой отстает по оперативности.
Пример запроса за термоточками
Пример запроса за кластерами
Из-за того что данные немного разные, для оперативности получения данных и настроек параметров обработки логично показывать два разных слоя, как сделано на fires.kosmosnimki.ru
(Пожары СКАНЭКС / Пожары FIRMS)
Либо показывать только один слой.
В запросах API поддерживаются операторы сравнения > >= <> = < <=
Так что можно показывать в режиме “прошедшие + текущие сутки”
http://maps.kosmosnimki.ru/VectorLayer/Search.ashx?layer=F2840D287CD943C4B1122882C5B92565&geometry=true&query=“DateTime”>=’13.04.2014′&”DateTime”<=’14.04.2014′
Пример использования
Пример запроса к слою пожаров в границе Приморского края (указывается слой границы из базы GeoMixer) за 07.11.2014, с возвращением координат Меркатора.
В примере запроса используется тестовый API-ключ, который может поменяться. Используйте собственный ключ

Условия использования
Условием бесплатного использования API является:
- некоммерческий проект
- ссылка на источник: Космоснимки Пожары © ГК СКАНЭКС
В случае если вы реализуете коммерческий проект или хотите заказать тех поддержку / дополнительные сервисы, обратитесь к нам: help@kosmosnimki.ru
