GeoZone Public API
Une API GraphQL qui retourne des données de zones de charge structurelles, des caractéristiques géographiques et des rapports PDF pour n'importe quelles coordonnées dans le monde.
7 Requêtes1 SouscriptionAuth Bearer
POSThttps://team-w.dlubal.com/api/geo-zone/pub/graphql
Application Web
L'outil GeoZone est également disponible en tant qu'application web interactive sur dlubal.com. Sélectionnez n'importe quel emplacement sur la carte pour afficher instantanément toutes les valeurs de zones de charge structurelles.

Application web GeoZone
Authentification
La plupart des requêtes nécessitent un token Bearer dans l'en-tête Authorization :
Authorization:Bearer YOUR_TOKEN
Les requêtes marquées Public ne nécessitent pas d'authentification. Toutes les autres consomment un crédit API par requête.
getLoadZoneCharacteristics
RequêteAuth requise
Retourne la classification de zone de charge et toutes les caractéristiques pour une coordonnée donnée. Accepte un loadZoneId (depuis findLoadzones), layerId, et la latitude/longitude décimale sous forme de chaînes. La réponse inclut les détails de l'adresse, la zone correspondante et une liste ordonnée de caractéristiques structurelles.
Le champ code peut être OK, COUNTRY_CHANGED (le serveur a sélectionné automatiquement une norme plus appropriée), ANNEX_CHANGED, ou ERROR.

Zones de neige

Zones de vent

Zones sismiques
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
RequêteAuth requise
Version héritée de getZoneCharacteristics. Retourne une réponse condensée sans données d'adresse ni séquences de caractéristiques complètes. Conservé pour la compatibilité ascendante — les nouvelles intégrations doivent utiliser getZoneCharacteristics.
query {
getLoadZoneCharacteristicsV1(
input: {
address: "Munich, Germany"
type: SNOW
standard: "EN 1991-1-3"
annex: "Germany"
layerId: 1
}
language: EN
)
}
getGeoLocations
RequêtePublic
Recherche de géocodage — convertit une adresse en texte libre en résultats de coordonnées. Aucune authentification requise. Retourne jusqu'à 10 résultats classés avec rue, ville, état, pays, code postal et coordonnées décimales.

Recherche d'adresse
query {
getGeoLocations(
address: "Altdorf, Uri, Switzerland"
language: EN
) {
latitude longitude altitude
displayName street zip city state country countryCode
}
}
getLoadZoneScreenshot
RequêteAuth requise
Génère une capture d'écran de carte centrée sur les coordonnées données sous forme de PNG ou JPEG encodé en base64. Utile pour intégrer des cartes de zones dans des rapports ou tableaux de bord.
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
RequêtePublic
Retourne la hiérarchie complète des types de zones de charge, normes, annexes nationales et couches. Utilisez ceci pour remplir des sélecteurs ou découvrir les valeurs loadZoneId valides avec leurs identifiants de couche, libellés de zone et couleurs.
query {
getLoadZoneStandards(
countryCode: "DE"
language: EN
) {
name
standards {
name
annexes {
name
actual
layers { id name }
}
}
}
}
findLoadzones
RequêteAuth requise
Retourne une liste compacte de zones de charge groupées par type — idéal pour découvrir les paires valides loadZoneId / layerId.
query {
findLoadzones(
countryCode: "DE"
language: EN
) {
country
countryCode
typeGroups {
name
loadzones {
standard annex loadzoneId
layers { id name }
}
}
}
}
Exemple de réponse
{
"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
RequêteAuth requise
Retourne l'adresse e-mail de l'utilisateur authentifié, le solde de crédits et le nombre de clics API restants pour la période de facturation en cours.
query {
getUserData {
email
clicks
}
}
getPdf
SouscriptionAuth requise
Génère un rapport PDF complet de zone de charge via une connexion WebSocket (souscriptions GraphQL via graphql-ws). Le serveur diffuse des mises à jour de progression ; le message final contient le PDF encodé en base64 et un nom de fichier suggéré.
Point de terminaison 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 }
}
}
Exemple client 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"); },
}
);
Énumérations
LanguageEnum
| Valeur | Langue |
|---|
| EN | English |
| DE | German |
| FR | French |
| IT | Italian |
| ES | Spanish |
| PT | Portuguese |
| PL | Polish |
| CS | Czech |
| RU | Russian |
| ZH | Chinese |
LoadzoneTypeEnum
| Valeur | Description |
|---|
| 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
| Valeur | Description |
|---|
| PNG | Lossless PNG image |
| JPEG | Compressed JPEG image |
Types de sortie
CharacteristicsResponseMiaType
| Champ | Type | Description |
|---|
| 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
| Champ | Type | Description |
|---|
| standard | String! | Standard name |
| annex | String! | Annex name |
| zoneCharacteristics | CharacteristicsLayerType2! | Layer result |
CharacteristicsLayerType2
| Champ | Type | Description |
|---|
| id | Int! | Layer ID |
| zone | CharacteristicsZoneType2! | Matched zone value |
| characteristics | [CharacteristicsVariableType]! | Ordered load values |
CharacteristicsVariableType
| Champ | Type | Description |
|---|
| 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
| Champ | Type | Description |
|---|
| 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
| Champ | Type | Description |
|---|
| 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
| Champ | Type | Description |
|---|
| email | String! | Account email address |
| clicks | Int! | Remaining API calls this billing period |
LoadzoneGroupShortType
| Champ | Type | Description |
|---|
| country | String! | Country name |
| countryCode | String! | ISO country code |
| typeGroups | [LoadzoneTypeGroupType]! | Zones grouped by type |
LoadzoneShortType
| Champ | Type | Description |
|---|
| standard | String! | Standard name |
| annex | String! | Annex name |
| loadzoneId | String! | Unique load zone identifier |
| layers | [LoadzoneLayerShortType]! | Available layers |
PdfProgressType
| Champ | Type | Description |
|---|
| currentStep | Int! | Steps completed |
| steps | Int! | Total steps |
| message | String! | Status message |
| pdfResult | PdfResultType | Present on final message only |
PdfResultType
| Champ | Type | Description |
|---|
| pdf | String! | Base64-encoded PDF |
| name | String! | Suggested filename |