Отправка данных по API | 2ГИС Про | 2GIS Documentation
2ГИС Про

Загрузка данных по API

Вы можете загружать данные из внешних источников в Про по API. Этот способ лучше всего подходит для работы с изменчивыми по своей природе данными.

Примечание

Загрузить данные по API вы можете только в отдельный набор данных, созданный по инструкции ниже. Загрузка в системные наборы данных недоступна.

  1. Создайте пустой набор, в который будут подгружаться данные:

    1. Отправьте POST-запрос к /dynamic_asset:

      https://pro-api.2gis.ru/dynamic_asset
      

      Для авторизации используйте Bearer-токен.

      Как получить Bearer-токен
      1. Откройте интерфейс Про в браузере и откройте Developer Tools (клавиша F12).
      2. В интерфейсе Про нажмите Иконка профиля, чтобы открыть вкладку профиля.
      3. На панели Developer Tools во вкладке Networks появится строка user?include_permissions=true. Нажмите на неё.
      4. В открывшейся таблице найдите строку Authorization и скопируйте символы после Bearer. Используйте эти символы как токен авторизации.

    2. В теле запроса передайте JSON с необходимыми параметрами:

      • geometry_dimension: тип геометрии (точка, линия, полигон). Обязательный параметр.
      • name: имя набора данных. Обязательный параметр.
      • description: описание набора данных.
      • attribute_groups: список атрибутов данных. Вы можете указать не более 100 атрибутов каждого типа.
      • filters: настройки фильтров данных по указанным атрибутам: тип UI-элемента, список значений и т.д.

      Более подробную информацию о параметрах см. в Справочнике API.

      Пример тела запроса
      {
          "geometry_dimension": "polygon",
          "name": "Машины на карте города",
          "description": "Показывает позиции автомобилей на карте",
          "attribute_groups": [
              {
                  "name": "Main features",
                  "attributes": [
                      {
                          "id": "Model",
                          "type": "string",
                          "caption": "Модель"
                      },
                      {
                          "id": "Year",
                          "type": "number",
                          "caption": "Год выпуска"
                      }
                  ]
              }
          ],
          "filters": [
              {
                  "attribute_id": "Model",
                  "control_type": "check_box_list",
                  "items": [
                      {
                          "value": "Mercedes Benz S600",
                          "caption": "Mercedes Benz S600"
                      },
                      {
                          "value": "Citroen C3",
                          "caption": "Citroen C3"
                      }
                  ]
              },
              {
                  "attribute_id": "Year",
                  "control_type": "range",
                  "min": 1969,
                  "max": 2022
              }
          ]
      }
      

    В случае успешного выполнения запроса вернется ответ с ID созданного набора данных (поле asset_id) и токеном доступа (поле access_token).

  2. Откройте интерфейс Про и обновите страницу. Созданный набор появится в списке загруженных данных.

    Примечание

    Создание набора данных может занять некоторое время. Если набор не появился в интерфейсе сразу, попробуйте обновить страницу позднее.

    Новый динамический набор данных

    Чтобы увидеть настроенные фильтры, откройте набор данных и выберите территорию (пока данные не загружены, результаты будут пустые).

    Фильтры динамического набора данных

Чтобы загрузить в Про порцию данных:

  1. Отправьте PUT-запрос к /dynamic_asset:

    https://pro-api.2gis.ru/dynamic_asset/{assetId}/data
    

    Для отправки запроса необходимы следующие данные, которые вы получили при создании набора:

    • ID набора данных (assetId). Вы можете скопировать его из интерфейса Про: откройте созданный набор данных и скопируйте значение между ...assetId/ и ?m=... из адреса открывшейся страницы.
    • Токен доступа для авторизации. Вы можете найти его во вкладке личного профиля в интерфейсе Про.
  2. В теле запроса передайте данные в формате GeoJSON:

    • type: тип объекта GeoJSON.

    • features: параметры объекта:

      • type: тип объекта GeoJSON.

      • geometry: геометрия объекта в формате JSON.

      • id: идентификатор объекта.

      • properties: свойства объекта по схеме атрибутов данных, заданных при создании набора.

        Если в свойствах объекта имена или значения атрибутов отличаются от заданных при создании набора данных, то все новые значения будут отображены в карточке объекта, но не попадут в настройки фильтров. Чтобы обновить фильтры, отправьте запрос на изменение метаданных набора.

    Более подробную информацию о параметрах см. в Справочнике API.

    Пример тела запроса
    {
        "type": "FeatureCollection",
        "features": [
            {
                "id": "1",
                "type": "Feature",
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [37.67340873626523, 55.689291576019315],
                            [37.67340873626523, 55.68384205945338],
                            [37.68043927275957, 55.68384205945338],
                            [37.68043927275957, 55.689291576019315],
                            [37.67340873626523, 55.689291576019315]
                        ]
                    ]
                },
                "properties": {
                    "Model": "Citroen C3",
                    "Year": 2002
                }
            }
        ]
    }
    
  3. Откройте интерфейс Про, обновите страницу и выберите нужный набор данных. Загруженные данные отобразятся на карте.

    Примечание

    Загрузка данных обычно занимает около минуты. Если данные не появились сразу, попробуйте обновить страницу позже.

Динамический набор с загруженными данными
  • Наборы для загрузки данных по API учитываются в общем лимите пользовательских данных. Вы можете найти текущую статистику во вкладке личного профиля в интерфейсе Про.
  • Максимальное общее количество объектов в наборе данных — 100 000. Чтобы увеличить этот лимит, обратитесь в поддержку.
  • Максимальное количество загружаемых объектов в одной операции — 1000.
  • Максимальный размер тела запроса в PUT-запросах — 1 Мб.

Для отправки запросов ниже необходимы следующие данные, которые вы получили при создании набора:

  • ID набора данных.

    Вы можете скопировать его из интерфейса Про: откройте созданный набор данных и скопируйте значение между ...assetId/ и ?m=... из адреса открывшейся страницы.

  • Токен доступа для авторизации.

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

Отправьте GET-запрос к /dynamic_asset с указанием ID созданного набора данных (параметр assetId):

https://pro-api.2gis.ru/dynamic_asset/{assetId}

Подробную информацию о структуре тела ответа см. в Справочнике API.

Важно

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

  1. Отправьте PUT-запрос к /dynamic_asset:

    https://pro-api.2gis.ru/dynamic_asset
    
  2. В теле запроса передайте JSON с ID и названием набора данных, а также параметрами, которые необходимо изменить.

    Полный список параметров см. в Справочнике API.

  1. Отправьте DELETE-запрос к /dynamic_asset с указанием ID созданного набора данных (параметр assetId):

    • Чтобы удалить часть объектов:

      https://pro-api.2gis.ru/dynamic_asset/{assetId}/data
      
    • Чтобы удалить все объекты:

      https://pro-api.2gis.ru/dynamic_asset/{assetId}/data/all
      
  2. Если вы удаляете только часть объектов, передайте в теле запроса JSON со списком ID объектов для удаления.

Более подробную информацию о параметрах см. в Справочнике API.

  1. В интерфейсе Про наведите курсор на карточку загруженных данных.
  2. Нажмите на значок Опции загруженных данных и выберите пункт Удалить.
  3. Подтвердите удаление, нажав Удалить.