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