GeoZone Public API
GraphQL API, возвращающий данные о структурных нагрузочных зонах, географические характеристики и PDF-отчёты для любых координат по всему миру.
7 запросов1 подпискаBearer-аутентификация
POSThttps://team-w.dlubal.com/api/geo-zone/pub/graphql
Веб-приложение
Инструмент GeoZone также доступен в виде интерактивного веб-приложения на dlubal.com. Выберите любое место на карте, чтобы мгновенно просмотреть все значения структурных нагрузочных зон.

Веб-приложение GeoZone
Аутентификация
Большинство запросов требуют токен Bearer в заголовке Authorization:
Authorization:Bearer YOUR_TOKEN
Запросы, помеченные как Публичный не требуют аутентификации. Все остальные расходуют один кредит API за запрос.
getLoadZoneCharacteristics
ЗапросТребует auth
Возвращает классификацию нагрузочной зоны и все характеристики для заданных координат. Принимает loadZoneId (из findLoadzones), layerId и широту/долготу в виде десятичных строк. Ответ включает данные адреса, соответствующую зону и упорядоченный список структурных характеристик.
Поле code может принимать значения OK, COUNTRY_CHANGED (сервер автоматически выбрал более подходящий стандарт), ANNEX_CHANGED или ERROR.

Снеговые зоны

Ветровые зоны

Сейсмические зоны
query {
getLoadZoneCharacteristics(
input: {
address: "Munich, Germany"
type: SNOW
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
}
language: EN
) {
code
message
geoLocation {
latitude longitude altitude
street zip city state country countryCode
}
characteristics {
standard
annex
zoneCharacteristics {
id
zone { value }
characteristics {
name calculatedValue
nameHtml unitsHtml description
decimalPlaces sequence
}
}
}
noLiability
}
}
getLoadZoneCharacteristicsV1
ЗапросТребует auth
Устаревшая версия getZoneCharacteristics. Возвращает сокращённый ответ без данных адреса или полных последовательностей характеристик. Сохранена для обратной совместимости — новые интеграции должны использовать getZoneCharacteristics.
query {
getLoadZoneCharacteristicsV1(
input: {
address: "Munich, Germany"
type: SNOW
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
}
language: EN
)
}
getGeoLocations
ЗапросПубличный
Геокодирование — преобразует адрес в свободной форме в координаты. Аутентификация не требуется. Возвращает до 10 ранжированных результатов с улицей, городом, регионом, страной, почтовым индексом и десятичными координатами.

Поиск адреса
query {
getGeoLocations(
address: "Altdorf, Uri, Switzerland"
language: EN
) {
latitude longitude altitude
displayName street zip city state country countryCode
}
}
getLoadZoneScreenshot
ЗапросТребует auth
Генерирует снимок карты с центром в заданных координатах в виде PNG или JPEG в кодировке base64. Полезно для встраивания карт зон в отчёты или дашборды.
query {
getLoadZoneScreenshot(
input: {
address: "Munich, Germany"
type: SNOW
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
zoom: 8
screenshotType: { type: PNG quality: 90 }
}
language: EN
)
}
getLoadZoneStandards
ЗапросПубличный
Возвращает полную иерархию типов нагрузочных зон, стандартов, национальных приложений и слоёв. Используйте для заполнения выпадающих списков или поиска допустимых значений loadZoneId с их идентификаторами слоёв, метками зон и цветами.
query {
getLoadZoneStandards(
countryCode: "DE"
language: EN
) {
name
standards {
name
annexes {
name
actual
layers { id name }
}
}
}
}
findLoadzones
ЗапросТребует auth
Возвращает компактный список нагрузочных зон, сгруппированных по типу — идеально для поиска допустимых пар loadZoneId / layerId.
query {
findLoadzones(
countryCode: "DE"
language: EN
) {
country
countryCode
typeGroups {
name
loadzones {
standard annex loadzoneId
layers { id name }
}
}
}
}
Пример ответа
{
"data": {
"findLoadzones": {
"country": "Germany",
"countryCode": "DE",
"typeGroups": [
{
"name": "Snow",
"loadzones": [
{
"standard": "EN 1991-1-3",
"annex": "Germany",
"loadzoneId": "snow-eu-en-1991",
"layers": [{ "id": 1, "name": null }]
}
]
},
{
"name": "Wind",
"loadzones": [
{
"standard": "EN 1991-1-4",
"annex": "Germany",
"loadzoneId": "wind-eu-en-2005",
"layers": [{ "id": 1, "name": null }]
}
]
}
]
}
}
}
getUserData
ЗапросТребует auth
Возвращает адрес электронной почты аутентифицированного пользователя, баланс кредитов и оставшееся количество кликов API за текущий расчётный период.
query {
getUserData {
email
clicks
}
}
getPdf
ПодпискаТребует auth
Генерирует полный PDF-отчёт о нагрузочной зоне через WebSocket-соединение (подписки GraphQL через graphql-ws). Сервер передаёт обновления прогресса; последнее сообщение содержит PDF в кодировке base64 и предложенное имя файла.
WebSocket-эндпоинт: wss://team-w.dlubal.com/api/geo-zone/pub/graphql
subscription {
getPdf(
pdfInput: {
address: "Munich, Germany"
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
}
language: EN
) {
currentStep
steps
message
pdfResult { pdf name }
}
}
Пример клиента на JavaScript
import { createClient } from "graphql-ws";
const client = createClient({
url: "wss://team-w.dlubal.com/api/geo-zone/pub/graphql",
connectionParams: { Authorization: "Bearer YOUR_TOKEN" },
});
const unsubscribe = client.subscribe(
{
query: `subscription {
getPdf(pdfInput: {
address: "Munich, Germany"
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
} language: EN) {
currentStep steps message
pdfResult { pdf name }
}
}`,
},
{
next({ data }) {
const step = data?.getPdf;
console.log(`${step.currentStep}/${step.steps} — ${step.message}`);
if (step.pdfResult) {
// step.pdfResult.pdf is base64-encoded
unsubscribe();
}
},
error(err) { console.error(err); },
complete() { console.log("Done"); },
}
);
Перечисления
LanguageEnum
| Значение | Язык |
|---|
| EN | English |
| DE | German |
| FR | French |
| IT | Italian |
| ES | Spanish |
| PT | Portuguese |
| PL | Polish |
| CS | Czech |
| RU | Russian |
| ZH | Chinese |
LoadzoneTypeEnum
| Значение | Описание |
|---|
| SNOW | Snow load zones (EN 1991-1-3) |
| WIND | Wind load zones (EN 1991-1-4) |
| EARTHQUAKE | Seismic zones (EN 1998) |
| TORNADO | Tornado zones (US only) |
ScreenshotTypeEnum
| Значение | Описание |
|---|
| PNG | Lossless PNG image |
| JPEG | Compressed JPEG image |
Выходные типы
CharacteristicsResponseMiaType
| Поле | Тип | Описание |
|---|
| code | String! | Response status code |
| message | String | Human-readable message when code ≠ OK |
| geoLocation | GeofinderDataType | Resolved location data |
| characteristics | [CharacteristicsLoadzoneType2] | Per-standard zone results |
| noLiability | String | Disclaimer text |
CharacteristicsLoadzoneType2
| Поле | Тип | Описание |
|---|
| standard | String! | Standard name |
| annex | String! | Annex name |
| zoneCharacteristics | CharacteristicsLayerType2! | Layer result |
CharacteristicsLayerType2
| Поле | Тип | Описание |
|---|
| id | Int! | Layer ID |
| zone | CharacteristicsZoneType2! | Matched zone value |
| characteristics | [CharacteristicsVariableType]! | Ordered load values |
CharacteristicsVariableType
| Поле | Тип | Описание |
|---|
| name | String! | Parameter name (plain text) |
| nameHtml | String! | Parameter name (HTML) |
| calculatedValue | String | Computed value |
| unitsHtml | String! | Units (HTML) |
| description | String! | Parameter description |
| decimalPlaces | Int! | Display precision |
| sequence | Int! | Display order |
GeofinderDataType
| Поле | Тип | Описание |
|---|
| latitude | String! | Resolved latitude |
| longitude | String! | Resolved longitude |
| altitude | String! | Elevation |
| street | String | Street name and number |
| zip | String | Postal code |
| city | String | City / municipality |
| state | String | State or region |
| country | String | Country name |
| countryCode | String | ISO country code |
GeoLocationType
| Поле | Тип | Описание |
|---|
| latitude | String! | Latitude |
| longitude | String! | Longitude |
| altitude | String! | Elevation |
| displayName | String | Full formatted address |
| street | String | Street name and number |
| zip | String | Postal code |
| city | String | City / municipality |
| state | String | State or region |
| country | String | Country name |
| countryCode | String | ISO country code |
UserDataType
| Поле | Тип | Описание |
|---|
| email | String! | Account email address |
| clicks | Int! | Remaining API calls this billing period |
LoadzoneGroupShortType
| Поле | Тип | Описание |
|---|
| country | String! | Country name |
| countryCode | String! | ISO country code |
| typeGroups | [LoadzoneTypeGroupType]! | Zones grouped by type |
LoadzoneShortType
| Поле | Тип | Описание |
|---|
| standard | String! | Standard name |
| annex | String! | Annex name |
| loadzoneId | String! | Unique load zone identifier |
| layers | [LoadzoneLayerShortType]! | Available layers |
PdfProgressType
| Поле | Тип | Описание |
|---|
| currentStep | Int! | Steps completed |
| steps | Int! | Total steps |
| message | String! | Status message |
| pdfResult | PdfResultType | Present on final message only |
PdfResultType
| Поле | Тип | Описание |
|---|
| pdf | String! | Base64-encoded PDF |
| name | String! | Suggested filename |