Кадастровые слои НСПД Росреестра

Документация по всем кадастровым WMS-слоям, доступным через BackgroundTileService. Данные получаются из НСПД (nspd.gov.ru) — Национальной системы пространственных данных Росреестра. Слои отдаются как прозрачные PNG-оверлеи поверх любой базовой карты.

Все слои кэшируются в Redis (TTL 24 ч). При сбое НСПД срабатывает circuit breaker — после 10 подряд ошибок запросы к слою приостанавливаются на 60 сек.

Как это работает

1
Клиент
GET /tiles/rosreestr-parcels/14/9876/5432
2
BackgroundTileService
z/x/y → BBOX EPSG:3857
Circuit breaker check
3
НСПД WMS
GetMap
nspd.gov.ru/api/aeggis/v4/{id}/wms
4
PNG
256×256 px
transparent overlay

Прямой WMS-запрос к НСПД

При обращении через API сервиса, внутри генерируется WMS GetMap запрос:

https://nspd.gov.ru/api/aeggis/v4/{layer_id}/wms
  ?SERVICE=WMS
  &VERSION=1.3.0
  &REQUEST=GetMap
  &FORMAT=image/png
  &TRANSPARENT=true
  &CRS=EPSG:3857
  &STYLES=default
  &WIDTH=256
  &HEIGHT=256
  &LAYERS={layer_id}
  &BBOX={x0},{y0},{x1},{y1}
НСПД использует российский TLS-сертификат Минцифры, который не входит в стандартные CA-хранилища. Сервис обходит это через verify=False при запросе с сервера. Для браузера — используйте nginx-прокси.

Системы координат

CRSНазваниеИспользование
EPSG:3857 Web Mercator WMS-запросы к НСПД, тайловые сетки Leaflet/OL/Cesium.
Единицы: метры. Охват: ±20 037 508 м.
EPSG:4326 WGS 84 Географические координаты (широта/долгота).
Leaflet использует lat/lng внутри, конвертирует в 3857 для тайлов.

Конвертация z/x/y → BBOX (EPSG:3857)

Формула пересчёта тайловых координат в метры Web Mercator:

# Python
EARTH = 20037508.342789244

def tile_bbox_3857(z, x, y):
    n = 2 ** z
    tile_size = 2 * EARTH / n
    x0 = -EARTH + x * tile_size
    y1 =  EARTH - y * tile_size
    x1 = x0 + tile_size
    y0 = y1 - tile_size
    return f"{x0},{y0},{x1},{y1}"
// JavaScript
const EARTH = 20037508.342789244;

function tileBbox3857(z, x, y) {
    const n = 2 ** z;
    const size = 2 * EARTH / n;
    const x0 = -EARTH + x * size;
    const y1 =  EARTH - y * size;
    return [x0, y1 - size, x0 + size, y1];
}

WMS-параметры

ПараметрЗначениеОписание
SERVICEWMSТип сервиса (фиксированный)
VERSION1.3.0Версия WMS
REQUESTGetMapТип запроса
FORMATimage/pngФормат ответа (PNG с прозрачностью)
TRANSPARENTtrueПрозрачный фон
CRSEPSG:3857Система координат BBOX
STYLESdefaultСтиль отображения
WIDTH256Ширина тайла в пикселях
HEIGHT256Высота тайла в пикселях
LAYERS{layer_id}ID слоя в НСПД
BBOXx0,y0,x1,y1Bounding box в EPSG:3857 (метры)

Обработка ошибок

Circuit Breaker

Каждый кадастровый провайдер имеет встроенный circuit breaker:

ПараметрЗначениеОписание
NSPD_CB_THRESHOLD10Количество ошибок подряд для срабатывания
NSPD_CB_COOLDOWN60Пауза в секундах после срабатывания

Состояния circuit breaker

Closed (норма)
Все запросы проходят к НСПД
Open (блок)
10+ ошибок подряд — запросы блокируются на 60 сек
Half-Open (проба)
Один пробный запрос. Успех → Closed, ошибка → Open

Валидация ответа

  • HTTP-статус — 403, 429, 500, 502, 503 → логирование + None
  • PNG magic bytes — ответ проверяется на \x89PNG, HTML/JSON отбрасывается
  • Пустой bodyNone
  • Timeout / SSL / Connect → раздельный перехват, логирование, None

HTTP-коды ответа сервиса

КодКогда
200PNG-тайл получен и отдан
404Тайл не найден на НСПД / неизвестный слой / ошибка upstream

Как добавить новый слой

1. Найти ID слоя

Откройте nspd.gov.ru/map, включите нужный слой, и отследите запрос в DevTools (Network → WMS). ID слоя — число в URL /api/aeggis/v4/{id}/wms.

2. Проверить доступность

# Замените 36048 на ID нового слоя
curl -sk "https://nspd.gov.ru/api/aeggis/v4/36048/wms?\
SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&\
TRANSPARENT=true&CRS=EPSG:3857&STYLES=default&WIDTH=256&HEIGHT=256&\
LAYERS=36048&BBOX=4187591,7509994,4196384,7518787" \
-o test.png && file test.png

3. Создать провайдер

Добавьте класс в соответствующий файл пакета app/cadastre/:

# app/cadastre/<group>.py
from .base import NspdWmsProvider

class RosreestrNewLayerProvider(NspdWmsProvider):
    _layer_id = 99999               # ID слоя в НСПД
    _provider_id = "rosreestr-new"   # Уникальный ID для API
    _provider_name = "Новый слой"    # Отображаемое имя
    _min_zoom = 0                    # Мин. zoom (по умолчанию 0)
    _max_zoom = 19                   # Макс. zoom (по умолчанию 19)

4. Зарегистрировать

Импортируйте класс в app/cadastre/__init__.py и добавьте в список classes.

5. Перезапустить

docker compose up -d --build

ОКС и земельные участки

Земельные участки ЕГРН

ID: 36048 z0–z19 overlay
Provider IDrosreestr-parcels
NSPD Layer36048
ТипПолигоны земельных участков с кадастровыми номерами
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-parcels/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-parcels/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-parcels/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Земельные участки ЕГРН': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-parcels/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-parcels/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36048/wms',
        layers: '36048',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-parcels/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36048/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36048",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36048/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36048
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Здания ЕГРН

ID: 36049 z0–z19 overlay
Provider IDrosreestr-buildings
NSPD Layer36049
ТипКонтуры зданий из ЕГРН
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-buildings/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-buildings/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-buildings/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Здания ЕГРН': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-buildings/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-buildings/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36049/wms',
        layers: '36049',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-buildings/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36049/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36049",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36049/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36049
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Сооружения ЕГРН

ID: 36328 z0–z19 overlay
Provider IDrosreestr-structures
NSPD Layer36328
ТипКонтуры сооружений (мосты, дороги, линии электропередач и т.д.)
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-structures/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-structures/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-structures/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Сооружения ЕГРН': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-structures/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-structures/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36328/wms',
        layers: '36328',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-structures/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36328/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36328",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36328/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36328
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Незавершённое строительство ЕГРН

ID: 36329 z0–z19 overlay
Provider IDrosreestr-unfinished
NSPD Layer36329
ТипОбъекты незавершённого строительства
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-unfinished/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-unfinished/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-unfinished/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Незавершённое строительство ЕГРН': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-unfinished/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-unfinished/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36329/wms',
        layers: '36329',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-unfinished/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36329/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36329",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36329/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36329
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Единые недвижимые комплексы

ID: 37433 z0–z19 overlay
Provider IDrosreestr-property-complex
NSPD Layer37433
ТипЕдиные недвижимые комплексы (ЕНК)
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-property-complex/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-property-complex/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-property-complex/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Единые недвижимые комплексы': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-property-complex/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-property-complex/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37433/wms',
        layers: '37433',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-property-complex/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37433/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37433",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37433/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37433
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Предприятие как имущественный комплекс

ID: 37434 z0–z19 overlay
Provider IDrosreestr-enterprise-complex
NSPD Layer37434
ТипПредприятия как имущественные комплексы
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-enterprise-complex/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-enterprise-complex/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-enterprise-complex/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Предприятие как имущественный комплекс': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-enterprise-complex/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-enterprise-complex/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37434/wms',
        layers: '37434',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-enterprise-complex/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37434/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37434",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37434/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37434
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Кадастровое деление

Кадастровые округа

ID: 36945 z0–z19 overlay
Provider IDrosreestr-okrugs
NSPD Layer36945
ТипГраницы кадастровых округов
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-okrugs/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-okrugs/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-okrugs/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Кадастровые округа': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-okrugs/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-okrugs/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36945/wms',
        layers: '36945',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-okrugs/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36945/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36945",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36945/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36945
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Кадастровые районы

ID: 36070 z0–z19 overlay
Provider IDrosreestr-districts
NSPD Layer36070
ТипГраницы кадастровых районов
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-districts/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-districts/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-districts/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Кадастровые районы': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-districts/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-districts/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36070/wms',
        layers: '36070',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-districts/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36070/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36070",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36070/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36070
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Кадастровые кварталы

ID: 36071 z0–z19 overlay
Provider IDrosreestr-quarters
NSPD Layer36071
ТипГраницы кадастровых кварталов
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-quarters/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-quarters/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-quarters/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Кадастровые кварталы': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-quarters/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-quarters/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36071/wms',
        layers: '36071',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-quarters/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36071/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36071",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36071/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36071
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Подписи

Подписи зданий

ID: 36326 z0–z19 overlay
Provider IDrosreestr-labels-buildings
NSPD Layer36326
ТипТекстовые подписи кадастровых номеров зданий
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-labels-buildings/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-labels-buildings/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-labels-buildings/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Подписи зданий': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-labels-buildings/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-labels-buildings/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36326/wms',
        layers: '36326',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-labels-buildings/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36326/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36326",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36326/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36326
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Подписи участков

ID: 36327 z0–z19 overlay
Provider IDrosreestr-labels-parcels
NSPD Layer36327
ТипТекстовые подписи кадастровых номеров земельных участков
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-labels-parcels/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-labels-parcels/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-labels-parcels/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Подписи участков': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-labels-parcels/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-labels-parcels/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36327/wms',
        layers: '36327',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-labels-parcels/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36327/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36327",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36327/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36327
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Подписи сооружений

ID: 36332 z0–z19 overlay
Provider IDrosreestr-labels-structures
NSPD Layer36332
ТипТекстовые подписи кадастровых номеров сооружений
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-labels-structures/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-labels-structures/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-labels-structures/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Подписи сооружений': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-labels-structures/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-labels-structures/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36332/wms',
        layers: '36332',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-labels-structures/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36332/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36332",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36332/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36332
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Административные границы

Государственная граница РФ

ID: 37313 z0–z19 overlay
Provider IDrosreestr-state-border
NSPD Layer37313
ТипЛиния государственной границы Российской Федерации
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-state-border/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-state-border/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-state-border/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Государственная граница РФ': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-state-border/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-state-border/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37313/wms',
        layers: '37313',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-state-border/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37313/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37313",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37313/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37313
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Субъекты РФ (линии)

ID: 37314 z0–z19 overlay
Provider IDrosreestr-subject-borders-line
NSPD Layer37314
ТипГраницы субъектов РФ — линейная геометрия
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-subject-borders-line/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-subject-borders-line/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-subject-borders-line/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Субъекты РФ (линии)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-subject-borders-line/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-subject-borders-line/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37314/wms',
        layers: '37314',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-subject-borders-line/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37314/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37314",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37314/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37314
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Субъекты РФ (полигоны)

ID: 37315 z0–z19 overlay
Provider IDrosreestr-subject-borders-poly
NSPD Layer37315
ТипГраницы субъектов РФ — полигональная геометрия
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-subject-borders-poly/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-subject-borders-poly/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-subject-borders-poly/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Субъекты РФ (полигоны)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-subject-borders-poly/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-subject-borders-poly/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37315/wms',
        layers: '37315',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-subject-borders-poly/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37315/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37315",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37315/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37315
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Муниципальные образования

ID: 36278 z0–z19 overlay
Provider IDrosreestr-municipal-poly
NSPD Layer36278
ТипГраницы муниципальных образований — полигоны
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-municipal-poly/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-municipal-poly/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-municipal-poly/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Муниципальные образования': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-municipal-poly/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-municipal-poly/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36278/wms',
        layers: '36278',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-municipal-poly/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36278/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36278",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36278/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36278
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Муниципальные образования (линии)

ID: 36279 z0–z19 overlay
Provider IDrosreestr-municipal-line
NSPD Layer36279
ТипГраницы муниципальных образований — линии
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-municipal-line/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-municipal-line/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-municipal-line/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Муниципальные образования (линии)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-municipal-line/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-municipal-line/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36279/wms',
        layers: '36279',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-municipal-line/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36279/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36279",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36279/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36279
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Населённые пункты

ID: 36281 z0–z19 overlay
Provider IDrosreestr-settlement-poly
NSPD Layer36281
ТипГраницы населённых пунктов — полигоны
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-settlement-poly/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-settlement-poly/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-settlement-poly/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Населённые пункты': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-settlement-poly/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-settlement-poly/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36281/wms',
        layers: '36281',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-settlement-poly/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36281/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36281",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36281/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36281
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Населённые пункты (линии)

ID: 37316 z0–z19 overlay
Provider IDrosreestr-settlement-line
NSPD Layer37316
ТипГраницы населённых пунктов — линии
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-settlement-line/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-settlement-line/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-settlement-line/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Населённые пункты (линии)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-settlement-line/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-settlement-line/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37316/wms',
        layers: '37316',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-settlement-line/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37316/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37316",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37316/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37316
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Природа и экология

ЗОУИТ

ID: 36302 z0–z19 overlay
Provider IDrosreestr-zouit
NSPD Layer36302
ТипЗоны с особыми условиями использования территории (ЕГРН)
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-zouit/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-zouit/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-zouit/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'ЗОУИТ': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-zouit/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-zouit/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36302/wms',
        layers: '36302',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-zouit/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36302/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36302",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36302/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36302
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

ООПТ

ID: 36317 z0–z19 overlay
Provider IDrosreestr-oopt
NSPD Layer36317
ТипОсобо охраняемые природные территории
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-oopt/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-oopt/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-oopt/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'ООПТ': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-oopt/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-oopt/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36317/wms',
        layers: '36317',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-oopt/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36317/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36317",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36317/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36317
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Лесничества

ID: 36314 z0–z19 overlay
Provider IDrosreestr-forestry
NSPD Layer36314
ТипГраницы лесничеств и лесопарков
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-forestry/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-forestry/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-forestry/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Лесничества': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-forestry/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-forestry/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36314/wms',
        layers: '36314',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-forestry/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36314/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36314",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36314/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36314
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Охотугодья

ID: 36311 z0–z19 overlay
Provider IDrosreestr-hunting
NSPD Layer36311
ТипГраницы охотничьих угодий
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-hunting/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-hunting/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-hunting/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Охотугодья': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-hunting/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-hunting/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36311/wms',
        layers: '36311',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-hunting/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36311/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36311",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36311/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36311
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Лесопарковые зелёные пояса

ID: 37428 z0–z19 overlay
Provider IDrosreestr-green-belt
NSPD Layer37428
ТипГраницы лесопарковых зелёных поясов
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-green-belt/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-green-belt/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-green-belt/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Лесопарковые зелёные пояса': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-green-belt/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-green-belt/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37428/wms',
        layers: '37428',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-green-belt/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37428/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37428",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37428/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37428
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Береговые линии (водные объекты)

ID: 36469 z0–z19 overlay
Provider IDrosreestr-shoreline
NSPD Layer36469
ТипБереговые линии (границы водных объектов)
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-shoreline/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-shoreline/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-shoreline/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Береговые линии (водные объекты)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-shoreline/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-shoreline/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36469/wms',
        layers: '36469',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-shoreline/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36469/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36469",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36469/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36469
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Зонирование и развитие

Территориальные зоны

ID: 36315 z0–z19 overlay
Provider IDrosreestr-territorial-zones
NSPD Layer36315
ТипГраницы территориальных зон
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-territorial-zones/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-territorial-zones/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-territorial-zones/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Территориальные зоны': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-territorial-zones/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-territorial-zones/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36315/wms',
        layers: '36315',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-territorial-zones/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36315/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36315",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36315/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36315
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

ОКН (культурное наследие)

ID: 36316 z0–z19 overlay
Provider IDrosreestr-cultural-heritage
NSPD Layer36316
ТипОбъекты культурного наследия — зоны охраны
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-cultural-heritage/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-cultural-heritage/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-cultural-heritage/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'ОКН (культурное наследие)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-cultural-heritage/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-cultural-heritage/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36316/wms',
        layers: '36316',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-cultural-heritage/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36316/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36316",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36316/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36316
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Особые экономические зоны

ID: 36303 z0–z19 overlay
Provider IDrosreestr-special-econ-zones
NSPD Layer36303
ТипГраницы особых экономических зон
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-special-econ-zones/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-special-econ-zones/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-special-econ-zones/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Особые экономические зоны': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-special-econ-zones/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-special-econ-zones/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36303/wms',
        layers: '36303',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-special-econ-zones/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36303/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36303",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36303/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36303
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Территории опережающего развития

ID: 36312 z0–z19 overlay
Provider IDrosreestr-advanced-dev
NSPD Layer36312
ТипГраницы территорий опережающего социально-экономического развития
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-advanced-dev/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-advanced-dev/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-advanced-dev/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Территории опережающего развития': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-advanced-dev/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-advanced-dev/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36312/wms',
        layers: '36312',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-advanced-dev/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36312/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36312",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36312/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36312
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Зоны территориального развития

ID: 36313 z0–z19 overlay
Provider IDrosreestr-territorial-dev
NSPD Layer36313
ТипГраницы зон территориального развития
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-territorial-dev/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-territorial-dev/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-territorial-dev/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Зоны территориального развития': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-territorial-dev/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-territorial-dev/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36313/wms',
        layers: '36313',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-territorial-dev/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36313/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36313",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36313/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36313
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Градостроительство

Красные линии

ID: 37293 z0–z19 overlay
Provider IDrosreestr-red-lines
NSPD Layer37293
ТипКрасные линии (границы территорий общего пользования)
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-red-lines/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-red-lines/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-red-lines/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Красные линии': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-red-lines/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-red-lines/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37293/wms',
        layers: '37293',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-red-lines/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37293/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37293",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37293/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37293
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Границы проектов планировки

ID: 37289 z0–z19 overlay
Provider IDrosreestr-planning-borders
NSPD Layer37289
ТипГраницы территорий, на которые разработаны проекты планировки
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-planning-borders/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-planning-borders/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-planning-borders/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Границы проектов планировки': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-planning-borders/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-planning-borders/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37289/wms',
        layers: '37289',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-planning-borders/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37289/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37289",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37289/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37289
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Территория проекта межевания

ID: 37423 z0–z19 overlay
Provider IDrosreestr-survey-territory
NSPD Layer37423
ТипТерритория, на которую разработан проект межевания
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-survey-territory/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-survey-territory/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-survey-territory/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Территория проекта межевания': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-survey-territory/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-survey-territory/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37423/wms',
        layers: '37423',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-survey-territory/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37423/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37423",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37423/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37423
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

ЗУ по проекту межевания (линии)

ID: 36472 z0–z19 overlay
Provider IDrosreestr-survey-parcels-line
NSPD Layer36472
ТипЗемельные участки, образуемые по проекту межевания — линии
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-survey-parcels-line/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-survey-parcels-line/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-survey-parcels-line/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'ЗУ по проекту межевания (линии)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-survey-parcels-line/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-survey-parcels-line/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36472/wms',
        layers: '36472',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-survey-parcels-line/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36472/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36472",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36472/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36472
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

ЗУ по проекту межевания (полигоны)

ID: 36473 z0–z19 overlay
Provider IDrosreestr-survey-parcels-poly
NSPD Layer36473
ТипЗемельные участки, образуемые по проекту межевания — полигоны
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-survey-parcels-poly/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-survey-parcels-poly/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-survey-parcels-poly/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'ЗУ по проекту межевания (полигоны)': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-survey-parcels-poly/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-survey-parcels-poly/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36473/wms',
        layers: '36473',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-survey-parcels-poly/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36473/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36473",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36473/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36473
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Земельные отношения

Свободные земельные участки

ID: 37298 z0–z19 overlay
Provider IDrosreestr-free-parcels
NSPD Layer37298
ТипЗемельные участки, свободные от прав третьих лиц
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-free-parcels/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-free-parcels/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-free-parcels/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Свободные земельные участки': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-free-parcels/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-free-parcels/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37298/wms',
        layers: '37298',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-free-parcels/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37298/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37298",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37298/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37298
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Земельные участки на аукционе

ID: 37299 z0–z19 overlay
Provider IDrosreestr-auction-parcels
NSPD Layer37299
ТипЗемельные участки, выставленные на торги (аукцион)
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-auction-parcels/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-auction-parcels/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-auction-parcels/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Земельные участки на аукционе': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-auction-parcels/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-auction-parcels/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37299/wms',
        layers: '37299',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-auction-parcels/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37299/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37299",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37299/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37299
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Публичные сервитуты

ID: 37432 z0–z19 overlay
Provider IDrosreestr-public-servitudes
NSPD Layer37432
ТипЗоны действия публичных сервитутов
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-public-servitudes/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-public-servitudes/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-public-servitudes/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Публичные сервитуты': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-public-servitudes/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-public-servitudes/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37432/wms',
        layers: '37432',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-public-servitudes/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37432/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37432",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37432/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37432
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Резервирование земель

ID: 37431 z0–z19 overlay
Provider IDrosreestr-land-reservation
NSPD Layer37431
ТипЗоны резервирования земель для государственных и муниципальных нужд
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-land-reservation/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-land-reservation/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-land-reservation/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Резервирование земель': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-land-reservation/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-land-reservation/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37431/wms',
        layers: '37431',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-land-reservation/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37431/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37431",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37431/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37431
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Территории ККР

ID: 37430 z0–z19 overlay
Provider IDrosreestr-cadastral-works
NSPD Layer37430
ТипТерритории комплексных кадастровых работ
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-cadastral-works/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-cadastral-works/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-cadastral-works/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Территории ККР': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-cadastral-works/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-cadastral-works/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/37430/wms',
        layers: '37430',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-cadastral-works/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/37430/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "37430",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/37430/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=37430
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Прочее

Полосы воздушных подходов

ID: 36069 z0–z19 overlay
Provider IDrosreestr-air-approach
NSPD Layer36069
ТипПриаэродромные территории — полосы воздушных подходов
CRSEPSG:3857 (Web Mercator)
ФорматPNG 256×256, прозрачный фон
Zoom0–19

API

GET /tiles/rosreestr-air-approach/{z}/{x}/{y}
curl -o tile.png "{SERVICE_URL}/tiles/rosreestr-air-approach/14/9876/5432"
// Overlay поверх базовой карты
const overlay = L.tileLayer('{SERVICE_URL}/tiles/rosreestr-air-approach/{z}/{x}/{y}', {
    opacity: 0.7,
    maxZoom: 19,
    attribution: '© Росреестр / НСПД'
});

// Добавить поверх базового слоя
overlay.addTo(map);

// Или через Layer Control
L.control.layers(baseLayers, {
    'Полосы воздушных подходов': overlay
}).addTo(map);
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';

const overlay = new TileLayer({
    source: new XYZ({
        url: '{SERVICE_URL}/tiles/rosreestr-air-approach/{z}/{x}/{y}',
        maxZoom: 19,
        attributions: '© Росреестр / НСПД',
        crossOrigin: 'anonymous',
    }),
    opacity: 0.7,
    zIndex: 10,  // поверх базового слоя
});

map.addLayer(overlay);
// Через BackgroundTileService (прокси)
const layer = viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: '{SERVICE_URL}/tiles/rosreestr-air-approach/{z}/{x}/{y}',
        minimumLevel: 0,
        maximumLevel: 19,
        credit: '© Росреестр / НСПД',
    })
);
layer.alpha = 0.7;

// Напрямую через WMS (требует nginx-прокси для TLS)
const wmsLayer = viewer.imageryLayers.addImageryProvider(
    new Cesium.WebMapServiceImageryProvider({
        url: '/nspd-wms/36069/wms',
        layers: '36069',
        parameters: {
            SERVICE: 'WMS', VERSION: '1.3.0',
            FORMAT: 'image/png', TRANSPARENT: 'true',
            CRS: 'EPSG:3857', STYLES: 'default',
        },
        tilingScheme: new Cesium.WebMercatorTilingScheme(),
    })
);
wmsLayer.alpha = 0.7;
import httpx

# Через BackgroundTileService
resp = httpx.get("{SERVICE_URL}/tiles/rosreestr-air-approach/14/9876/5432")
with open("tile.png", "wb") as f:
    f.write(resp.content)

# Напрямую к НСПД (verify=False для российского TLS)
resp = httpx.get(
    "https://nspd.gov.ru/api/aeggis/v4/36069/wms",
    params={
        "SERVICE": "WMS", "VERSION": "1.3.0",
        "REQUEST": "GetMap", "FORMAT": "image/png",
        "TRANSPARENT": "true", "CRS": "EPSG:3857",
        "WIDTH": "256", "HEIGHT": "256",
        "LAYERS": "36069",
        "BBOX": "4187591,7509994,4196384,7518787",
    },
    headers={"User-Agent": "Mozilla/5.0"},
    verify=False,
)
with open("tile_direct.png", "wb") as f:
    f.write(resp.content)
# WMS GetMap — прямой запрос к НСПД
GET https://nspd.gov.ru/api/aeggis/v4/36069/wms
    ?SERVICE=WMS
    &VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=image/png
    &TRANSPARENT=true
    &CRS=EPSG:3857
    &STYLES=default
    &WIDTH=256
    &HEIGHT=256
    &LAYERS=36069
    &BBOX=4187591.668,7509994.271,4196384.178,7518786.780

# Ответ: image/png, 256×256 px, прозрачный фон
# HTTP 200 — тайл с данными слоя
# HTTP 200 (пустой PNG) — нет данных в области

Сводная таблица слоёв

NSPD IDProvider IDНазваниеZoomГруппа
36048 rosreestr-parcels Земельные участки ЕГРН 0–19 ОКС и участки
36049 rosreestr-buildings Здания ЕГРН 0–19 ОКС и участки
36328 rosreestr-structures Сооружения ЕГРН 0–19 ОКС и участки
36329 rosreestr-unfinished Незавершённое строительство ЕГРН 0–19 ОКС и участки
37433 rosreestr-property-complex Единые недвижимые комплексы 0–19 ОКС и участки
37434 rosreestr-enterprise-complex Предприятие как имущественный комплекс 0–19 ОКС и участки
36945 rosreestr-okrugs Кадастровые округа 0–19 Кадастровое деление
36070 rosreestr-districts Кадастровые районы 0–19 Кадастровое деление
36071 rosreestr-quarters Кадастровые кварталы 0–19 Кадастровое деление
36326 rosreestr-labels-buildings Подписи зданий 0–19 Подписи
36327 rosreestr-labels-parcels Подписи участков 0–19 Подписи
36332 rosreestr-labels-structures Подписи сооружений 0–19 Подписи
37313 rosreestr-state-border Государственная граница РФ 0–19 Адм. границы
37314 rosreestr-subject-borders-line Субъекты РФ (линии) 0–19 Адм. границы
37315 rosreestr-subject-borders-poly Субъекты РФ (полигоны) 0–19 Адм. границы
36278 rosreestr-municipal-poly Муниципальные образования 0–19 Адм. границы
36279 rosreestr-municipal-line Муниципальные образования (линии) 0–19 Адм. границы
36281 rosreestr-settlement-poly Населённые пункты 0–19 Адм. границы
37316 rosreestr-settlement-line Населённые пункты (линии) 0–19 Адм. границы
36302 rosreestr-zouit ЗОУИТ 0–19 Природа и экология
36317 rosreestr-oopt ООПТ 0–19 Природа и экология
36314 rosreestr-forestry Лесничества 0–19 Природа и экология
36311 rosreestr-hunting Охотугодья 0–19 Природа и экология
37428 rosreestr-green-belt Лесопарковые зелёные пояса 0–19 Природа и экология
36469 rosreestr-shoreline Береговые линии (водные объекты) 0–19 Природа и экология
36315 rosreestr-territorial-zones Территориальные зоны 0–19 Зонирование
36316 rosreestr-cultural-heritage ОКН (культурное наследие) 0–19 Зонирование
36303 rosreestr-special-econ-zones Особые экономические зоны 0–19 Зонирование
36312 rosreestr-advanced-dev Территории опережающего развития 0–19 Зонирование
36313 rosreestr-territorial-dev Зоны территориального развития 0–19 Зонирование
37293 rosreestr-red-lines Красные линии 0–19 Градостроительство
37289 rosreestr-planning-borders Границы проектов планировки 0–19 Градостроительство
37423 rosreestr-survey-territory Территория проекта межевания 0–19 Градостроительство
36472 rosreestr-survey-parcels-line ЗУ по проекту межевания (линии) 0–19 Градостроительство
36473 rosreestr-survey-parcels-poly ЗУ по проекту межевания (полигоны) 0–19 Градостроительство
37298 rosreestr-free-parcels Свободные земельные участки 0–19 Земельные отнош.
37299 rosreestr-auction-parcels Земельные участки на аукционе 0–19 Земельные отнош.
37432 rosreestr-public-servitudes Публичные сервитуты 0–19 Земельные отнош.
37431 rosreestr-land-reservation Резервирование земель 0–19 Земельные отнош.
37430 rosreestr-cadastral-works Территории ККР 0–19 Земельные отнош.
36069 rosreestr-air-approach Полосы воздушных подходов 0–19 Прочее