Nástroj Geo-Zone poskytuje API na bázi GraphQL, pomocí kterého můžete získávat údaje o zónách sněhu, větru a zemětřesení přímo z vlastních aplikací, skriptů nebo výpočetních procesů, aniž byste museli otevírat webové rozhraní.
Začínáme
API lze používat třemi způsoby. Pro Python a C# jsou k dispozici hotové klientské knihovny, které automaticky zajišťují autentizaci, sestavení dotazů a zpracování odpovědí. Ve svém jazyce napíšete typizované volání funkce a získáte zpět strukturovaný datový objekt. Alternativně můžete posílat dotazy GraphQL přímo na koncový bod HTTPS, a to nezávisle na použitém programovacím jazyce nebo platformě.
Dokumentace a zdroje
Kompletní dokumentace API s interaktivním průzkumníkem schémat, dostupnými dotazy a ukázkovými požadavky je k dispozici v dokumentaci API.
Autentizace
Některé dotazy, jako například výpis dostupných norem a zatěžovacích zón dané země, lze používat bez autentizace. Pro dotaz na vypočtené hodnoty zatížení pro konkrétní místo je vyžadován token API, který je spojen s vaším balíčkem nástroje Geo-Zone.
Tento token odpovídá klíči API a je popsán v sekci Správa klíčů.
Při každém dotazu na zatížení se kontingent sníží o jeden. Aby bylo možné provádět dotazy na zatížení bez omezení, potřebujete balíček nástroje Geo-Zone.
Rychlý start (Python)
Následuje ukázka, jak pomocí knihovny Python získat údaje o zónách zatížení. Nejprve nainstalujte klientskou knihovnu:
pip install dlubal.api.geo-zone-tool
Pro dotaz na konkrétní hodnoty zatížení je vyžadován token API. Následující příklad zjistí zatížení sněhem podle DIN EN 1991-1-3 pro místo v Mnichově. K tomuto účelu jsou v současné době k dispozici typy zatížení SNOW, WIND, SEISMIC a TORNADO:
from dlubal.api import geo_zone_tool
from dlubal.api.geo_zone_tool import LoadZoneType, Language
gzt = geo_zone_tool.GeoZoneTool("")
result = gzt.get_load_zone_characteristics(
#nutné parametry
address="45.985,14.734", #adresa nebo souřadnice (zeměpisná šířka, zeměpisná délka)
load_zone_type=LoadZoneType.SNOW, #WIND SNOW SEISMIC TORNADO
#volitelné parametry
# standard="EN 1991-1-3",
# annex="Germany",
# layer_id=1,
# language=Language.EN
)
#print(result)
print(result.geo_location.city)
for chars in result.characteristics:
print(f"{chars.standard} / {chars.annex}")
zone = chars.zone_characteristics
print(f" Zone: {zone.zone.value}")
for c in zone.characteristics:
print(f" {c.name} = {c.calculated_value}")
Odpověď obsahuje rozlišené místo, přiřazenou oblast zatížení sněhem a charakteristickou hodnotu s_k v kN/m². Při vynechání volitelných parametrů se použije aktuální mapa pro zvolenou adresu. Stejná struktura odpovědi umožňuje použít tentýž kód i pro zatížení větrem a seismické zatížení.
Mnichov
EN 1991-1-3 / DIN EN 1991-1-3
Zone: 1a*
s_k = 1.15