Добавление объекта (здания) в существующий слой

Предпосылки

Для выполнения этого примера предполагается, что у вас уже есть существующая таблица и слой в системе EverGIS. Таблица должна быть настроена для хранения данных о зданиях, а слой должен быть создан на основе этой таблицы.

Пример кода на Python

Следующий пример кода показывает, как добавить здание в центр Москвы (Красная площадь) с заполненными атрибутами в существующий слой.

import requests
import json

# Функция для авторизации и получения сессии
def login(username, password, host): 
    auth_url = f'{host}/account/login/'
    login_data = {
        "username": username,
        "password": password
    }
    headers = {'Content-Type': 'application/json'}
    session = requests.Session()
    response = session.post(url=auth_url, data=json.dumps(login_data), headers=headers)
    response.raise_for_status()
    return session

# Функция для добавления объекта (здания) в существующий слой
def add_building_to_layer(session, host, building_data):
    add_building_url = f'{host}/features'
    headers = {'Content-Type': 'application/json'}
    response = session.post(url=add_building_url, data=json.dumps(building_data), headers=headers)
    response.raise_for_status()
    return response.json()

# Параметры подключения
host = 'https://evergis.ru/sp'
username = 'your_username'
password = 'your_password'

# Авторизация и получение сессии
session = login(username, password, host)

# Данные для добавления здания
building_data = [
    {
        "layer": "your_layer_name",  # Укажите имя вашего существующего слоя
        "geometry": {
            "coordinates": [[
                [4183624.8, 7506766.5],
                [4183624.8, 7506866.5],
                [4183724.8, 7506866.5],
                [4183724.8, 7506766.5],
                [4183624.8, 7506766.5]
            ]],
            "sr": 3857,
            "type": "multipolygon"
        },
        "attributes": {
            "address": "Красная площадь, Москва",
            "purpose": "Коммерческое",
            "floors": 5,
            "year": "2024-01-01T00:00:00Z",
            "material": "Кирпич"
        }
    }
]

# Добавление здания в слой
add_building_response = add_building_to_layer(session, host, building_data)
print("Add Building to Layer Response:", add_building_response)