GeoZone
Documentazione API

GeoZone Public API

Un'API GraphQL che restituisce dati sulle zone di carico strutturali, caratteristiche geografiche e report PDF per qualsiasi coordinata nel mondo.

7 Query1 SottoscrizioneBearer Auth
POSThttps://team-w.dlubal.com/api/geo-zone/pub/graphql

Applicazione Web

Lo strumento GeoZone è disponibile anche come applicazione web interattiva su dlubal.com. Seleziona qualsiasi posizione sulla mappa per visualizzare istantaneamente tutti i valori delle zone di carico strutturali.

Applicazione web GeoZone
Applicazione web GeoZone

Autenticazione

La maggior parte delle query richiede un token Bearer nell'intestazione Authorization:

Authorization:Bearer YOUR_TOKEN

Le query contrassegnate come Pubblico non richiedono autenticazione. Tutte le altre consumano un credito API per richiesta.

getLoadZoneCharacteristics

QueryAuth richiesta

Restituisce la classificazione della zona di carico e tutte le caratteristiche per una coordinata specificata. Accetta un loadZoneId (da findLoadzones), layerId, e latitudine/longitudine decimale come stringhe. La risposta include dettagli sull'indirizzo, la zona corrispondente e un elenco ordinato di caratteristiche strutturali.

Il campo code può essere OK, COUNTRY_CHANGED (il server ha selezionato automaticamente uno standard più appropriato), ANNEX_CHANGED, o ERROR.

Zone neve
Zone neve
Zone vento
Zone vento
Zone sismiche
Zone sismiche
graphql
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

QueryAuth richiesta

Versione legacy di getZoneCharacteristics. Restituisce una risposta condensata senza dati di indirizzo o sequenze di caratteristiche complete. Mantenuto per compatibilità con le versioni precedenti — le nuove integrazioni devono usare getZoneCharacteristics.

graphql
query {
  getLoadZoneCharacteristicsV1(
    input: {
      address: "Munich, Germany"
      type: SNOW
      standard: "EN 1991-1-3"
      annex: "Germany"
      layerId: 1
    }
    language: EN
  )
}

getGeoLocations

QueryPubblico

Ricerca di geocodifica — converte un indirizzo in testo libero in risultati di coordinate. Nessuna autenticazione richiesta. Restituisce fino a 10 risultati classificati con via, città, stato, paese, codice postale e coordinate decimali.

Ricerca indirizzo
Ricerca indirizzo
graphql
query {
  getGeoLocations(
    address: "Altdorf, Uri, Switzerland"
    language: EN
  ) {
    latitude longitude altitude
    displayName street zip city state country countryCode
  }
}

getLoadZoneScreenshot

QueryAuth richiesta

Genera uno screenshot della mappa centrato sulle coordinate specificate come PNG o JPEG codificato in base64. Utile per incorporare mappe di zone in report o dashboard.

graphql
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

QueryPubblico

Restituisce la gerarchia completa dei tipi di zone di carico, standard, allegati nazionali e livelli. Usalo per popolare selettori o scoprire i valori loadZoneId validi con i loro ID di livello, etichette di zona e colori.

graphql
query {
  getLoadZoneStandards(
    countryCode: "DE"
    language: EN
  ) {
    name
    standards {
      name
      annexes {
        name
        actual
        layers { id name }
      }
    }
  }
}

findLoadzones

QueryAuth richiesta

Restituisce un elenco compatto di zone di carico raggruppate per tipo — ideale per scoprire coppie valide di loadZoneId / layerId.

graphql
query {
  findLoadzones(
    countryCode: "DE"
    language: EN
  ) {
    country
    countryCode
    typeGroups {
      name
      loadzones {
        standard annex loadzoneId
        layers { id name }
      }
    }
  }
}

Esempio di risposta

json
{
  "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

QueryAuth richiesta

Restituisce l'indirizzo e-mail dell'utente autenticato, il saldo crediti e il conteggio dei clic API rimanenti per il periodo di fatturazione corrente.

graphql
query {
  getUserData {
    email
    clicks
  }
}

getPdf

SottoscrizioneAuth richiesta

Genera un report PDF completo della zona di carico tramite connessione WebSocket (sottoscrizioni GraphQL via graphql-ws). Il server trasmette aggiornamenti di avanzamento; il messaggio finale contiene il PDF codificato in base64 e un nome file suggerito.

Endpoint WebSocket: wss://team-w.dlubal.com/api/geo-zone/pub/graphql

graphql
subscription {
  getPdf(
    pdfInput: {
      address: "Munich, Germany"
      standard: "EN 1991-1-3"
      annex: "Germany"
      layerId: 1
    }
    language: EN
  ) {
    currentStep
    steps
    message
    pdfResult { pdf name }
  }
}

Esempio client JavaScript

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"); },
  }
);

Enumerazioni

LanguageEnum

ValoreLingua
ENEnglish
DEGerman
FRFrench
ITItalian
ESSpanish
PTPortuguese
PLPolish
CSCzech
RURussian
ZHChinese

LoadzoneTypeEnum

ValoreDescrizione
SNOWSnow load zones (EN 1991-1-3)
WINDWind load zones (EN 1991-1-4)
EARTHQUAKESeismic zones (EN 1998)
TORNADOTornado zones (US only)

ScreenshotTypeEnum

ValoreDescrizione
PNGLossless PNG image
JPEGCompressed JPEG image

Tipi di input

CharacteristicsInput

CampoTipoDescrizione
addressString!Free-text address or place name
typeLoadzoneTypeEnumZone type filter (SNOW, WIND, EARTHQUAKE, TORNADO)
standardStringStandard name filter
annexStringAnnex / national annex filter
layerIdIntLayer ID within the standard

GetLoadzoneScreenshotPublicInput

CampoTipoDescrizione
addressString!Free-text address or place name
typeLoadzoneTypeEnumZone type filter
standardStringStandard name filter
annexStringAnnex filter
layerIdIntLayer ID
zoomIntMap zoom level (default 5)
mapStringMap tile style
layerOrderIntLayer rendering order
screenshotTypeScreenshotTypeInputImage format and quality

ScreenshotTypeInput

CampoTipoDescrizione
typeScreenshotTypeEnum!PNG or JPEG (default PNG)
qualityInt!JPEG quality 0–100 (default 90)

GetLoadzonePdfInput

CampoTipoDescrizione
addressString!Free-text address or place name
standardStringStandard name filter
annexStringAnnex filter
layerIdIntLayer ID

Tipi di output

CharacteristicsResponseMiaType

CampoTipoDescrizione
codeString!Response status code
messageStringHuman-readable message when code ≠ OK
geoLocationGeofinderDataTypeResolved location data
characteristics[CharacteristicsLoadzoneType2]Per-standard zone results
noLiabilityStringDisclaimer text

CharacteristicsLoadzoneType2

CampoTipoDescrizione
standardString!Standard name
annexString!Annex name
zoneCharacteristicsCharacteristicsLayerType2!Layer result

CharacteristicsLayerType2

CampoTipoDescrizione
idInt!Layer ID
zoneCharacteristicsZoneType2!Matched zone value
characteristics[CharacteristicsVariableType]!Ordered load values

CharacteristicsVariableType

CampoTipoDescrizione
nameString!Parameter name (plain text)
nameHtmlString!Parameter name (HTML)
calculatedValueStringComputed value
unitsHtmlString!Units (HTML)
descriptionString!Parameter description
decimalPlacesInt!Display precision
sequenceInt!Display order

GeofinderDataType

CampoTipoDescrizione
latitudeString!Resolved latitude
longitudeString!Resolved longitude
altitudeString!Elevation
streetStringStreet name and number
zipStringPostal code
cityStringCity / municipality
stateStringState or region
countryStringCountry name
countryCodeStringISO country code

GeoLocationType

CampoTipoDescrizione
latitudeString!Latitude
longitudeString!Longitude
altitudeString!Elevation
displayNameStringFull formatted address
streetStringStreet name and number
zipStringPostal code
cityStringCity / municipality
stateStringState or region
countryStringCountry name
countryCodeStringISO country code

UserDataType

CampoTipoDescrizione
emailString!Account email address
clicksInt!Remaining API calls this billing period

LoadzoneGroupShortType

CampoTipoDescrizione
countryString!Country name
countryCodeString!ISO country code
typeGroups[LoadzoneTypeGroupType]!Zones grouped by type

LoadzoneShortType

CampoTipoDescrizione
standardString!Standard name
annexString!Annex name
loadzoneIdString!Unique load zone identifier
layers[LoadzoneLayerShortType]!Available layers

PdfProgressType

CampoTipoDescrizione
currentStepInt!Steps completed
stepsInt!Total steps
messageString!Status message
pdfResultPdfResultTypePresent on final message only

PdfResultType

CampoTipoDescrizione
pdfString!Base64-encoded PDF
nameString!Suggested filename