API-Referenz
Alle APIs auf dieser Seite verwenden POST mit einem JSON-Anfragekörper. Jede Anfrage verwendet die Allgemeinen Anfrage-Header, die nicht bei jeder API wiederholt werden. Die äußere Antwortstruktur ist unter Einheitliche Antwortstruktur beschrieben; der Abschnitt „Antwort“ jeder API listet nur die Geschäftsfelder innerhalb von data auf.
Domains
| Region | Domain |
|---|---|
| Chinesisches Festland | https://open-api-gw.xgrids.cloud/ |
| Außerhalb des chinesischen Festlands (einschließlich Hongkong, Macau und Taiwan) | https://open-api-gw.xgrids.com/ |
Allgemeine Anfrage-Header
Jede API erfordert die folgenden Header-Parameter.
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| APP-ID | Anwendungs-ID | Wird bei der Beantragung der Anwendung vergeben | Ja | Keiner |
| X-Timestamp | Zeitstempel der Anfrage | Zeitstempel in Sekunden | Ja | Keiner |
| X-Nonce | Zufallszeichenfolge | Nur Buchstaben und Ziffern, 16 bis 32 Zeichen. Regex ^[A-Za-z0-9]{16,32}$. Empfohlen: UUID.randomUUID() ohne - | Ja | Keiner |
| X-Sign | Anfragesignatur | Stellt sicher, dass die Anfrage nicht manipuliert wurde, und verhindert Replay-Angriffe. Siehe Signaturmechanismus | Ja | Keiner |
| Content-Type | Inhaltstyp | Immer application/json | Ja | Keiner |
| language | Sprache der Antwortmeldungen | zh-CN oder en-US | Nein | zh-CN |
Einheitliche Antwortstruktur
Alle APIs geben dieselbe äußere Struktur zurück. Der äußere code gibt nur das Ergebnis auf API-Ebene wieder; das Geschäftsergebnis lesen Sie aus data.bizCode.
| Name | Bedeutung | Regel |
|---|---|---|
| code | Ergebniscode der API | 0 Erfolg, 401 Authentifizierung fehlgeschlagen, 429 zu viele Anfragen |
| msg | Beschreibung des API-Ergebnisses | — |
| data | Geschäftsdaten | — |
| data.bizCode | Geschäftlicher Ergebniscode | 0 bedeutet Erfolg; weitere Werte siehe Fehlercodes |
| data.bizMsg | Geschäftliche Fehlermeldung | — |
Hinweis: Ein Aufruf ist nur dann erfolgreich, wenn sowohl
code == 0als auchdata.bizCode == 0gilt.
Aufgabe erstellen und Upload-Zugangsdaten abrufen
Erstellt eine Modellierungsaufgabe und stellt temporäre Cloud-Speicher-Zugangsdaten für den Upload der Eingabedaten aus.
Endpunkt
POST /open-apis/spatial-model/v1/model/create
Grenzen
| Element | Grenze |
|---|---|
| Parallelität | 10 Anfragen / Sekunde |
| Gültigkeit der temporären Zugangsdaten | 12 Stunden |
| Datenspeicherregion | Wird bei der Beantragung der Anwendung festgelegt; muss nicht übergeben werden |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelName | Name der Modellierungsaufgabe | Weniger als 50 Zeichen | Ja | Keiner |
| modelDes | Aufgabenbeschreibung | Weniger als 200 Zeichen | Nein | Leer |
| quality | Modellierungsqualität | "1" schnell, "2" Standard, "3" langsam | Nein | "2" |
| autoRebuild | Modellierung nach dem Upload automatisch starten | 0 nur hochladen, 1 nach dem Upload automatisch modellieren | Nein | 1 |
| tags | Aufgaben-Tags | List<String>, weniger als 20 Elemente | Nein | Leer |
Antwort
| Name | Typ | Bedeutung |
|---|---|---|
| data.modelId | Long | Vom Server erzeugte ID der Modellierungsaufgabe |
| data.params | Object | Parameter der temporären Zugangsdaten für den Daten-Upload |
| data.params.cloudService | String | Cloud-Anbieter, der den Upload entgegennimmt. OSS Alibaba Cloud, AWS Amazon, KS3 Kingsoft Cloud. Jeder Integrator arbeitet in der Regel nur mit einem festen Anbieter, daher müssen Sie nicht alle unterstützen |
| data.params.endpoint | String | Upload-Endpunkt des Cloud-Speicheranbieters |
| data.params.region | String | Speicherregion des Cloud-Speicheranbieters |
| data.params.bucket | String | Upload-Bucket des Cloud-Speicheranbieters |
| data.params.savePath | String | Key des Zielverzeichnisses für hochgeladene Dateien. Dies ist das Präfix des Verzeichnisses input; hängen Sie den relativen Pfad jeder Datei an, um ihren tatsächlichen Key zu bilden |
| data.params.accessKeyId | String | Temporäre AccessKeyId |
| data.params.accessKeySecret | String | Temporäres AccessKeySecret |
| data.params.securityToken | String | SecurityToken für den Upload |
| data.params.requestId | String | ID dieser Anfrage |
Anfragebeispiel
POST /open-apis/spatial-model/v1/model/create HTTP/1.1
Host: open-api-gw.xgrids.com
APP-ID: your_app_id
X-Timestamp: 1791763200
X-Nonce: a3f91c2d8e7b4a6590fd12cb77ae40d1
X-Sign: 9mQk7xL2vTbR4pNw8sYcA1dHfZ3eJgU6oIyK0rVnBsM=
Content-Type: application/json
{
"modelName": "Design Commune C Facade",
"modelDes": "Nanshan, Shenzhen, LCC2 scene package",
"quality": "2",
"autoRebuild": 1,
"tags": ["facade", "nanshan"]
}
Antwortbeispiel
{
"code": 0,
"msg": "success",
"data": {
"bizCode": 0,
"bizMsg": "",
"modelId": 100231987,
"params": {
"cloudService": "AWS",
"endpoint": "s3.ap-southeast-1.amazonaws.com",
"region": "ap-southeast-1",
"bucket": "your-bucket-name",
"savePath": "prd/spatial-model/{accountId}/{taskCode}/input/",
"accessKeyId": "ASIA****************",
"accessKeySecret": "wJalrXUtnFEMI/K7MDENG/bPxRfiCY****",
"securityToken": "IQoJb3JpZ2luX2VjE****",
"requestId": "b7f1e2a9-5c43-4d8e-9a10-6f2c3b84d517"
}
}
}
Aufgabe starten
Startet die Modellierung manuell.
Endpunkt
POST /open-apis/spatial-model/v1/model/start
Grenzen
| Element | Grenze |
|---|---|
| Verwendung | Nur wenn die Aufgabe mit autoRebuild = 0 erstellt wurde:① Nur Aufgaben im Status „Upload abgeschlossen“ (3) können gestartet werden; andernfalls wird 100041018 zurückgegeben;② Das Verzeichnis input muss mindestens eine .lcc2- / .ply- / .las-Datei enthalten; andernfalls wird 100041019 zurückgegeben;③ Beim Start werden Credits eingefroren; bei unzureichendem Guthaben wird ein Credit-Fehlercode zurückgegeben |
| Ratenbegrenzung | 3 Sekunden pro modelId |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelId | ID der Modellierungsaufgabe | Wird beim Erstellen der Aufgabe zurückgegeben | Ja | Keiner |
Antwort
Gibt nur die Einheitliche Antwortstruktur zurück.
Anfragebeispiel
{
"modelId": 100231987
}
Upload-Zugangsdaten erneut abrufen
Ruft neue temporäre Upload-Zugangsdaten ab, wenn ein Upload unterbrochen wurde oder die temporären Zugangsdaten abgelaufen sind.
Endpunkt
POST /open-apis/spatial-model/v1/model/sts
Grenzen
| Element | Grenze |
|---|---|
| Gültigkeit der temporären Zugangsdaten | 12 Stunden |
| Ratenbegrenzung | 3 Sekunden pro modelId; bei zu häufigen Aufrufen wird 10000003 zurückgegeben |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelId | ID der Modellierungsaufgabe | — | Ja | Keiner |
Antwort
Identisch mit der Antwort von Aufgabe erstellen und Upload-Zugangsdaten abrufen (data.modelId und data.params.*).
Anfragebeispiel
{
"modelId": 100231987
}
Upload-Status aktualisieren
Meldet den Upload-Status der Eingabedaten. Sie müssen diese API nach Abschluss des Uploads aufrufen; andernfalls startet die Modellierung nicht.
Endpunkt
POST /open-apis/spatial-model/v1/model/upload_status/update
Grenzen
| Element | Grenze |
|---|---|
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelId | ID der Modellierungsaufgabe | — | Ja | Keiner |
| status | Upload-Status | 1 Upload läuft, 2 pausiert, 3 erfolgreich, 4 fehlgeschlagen | Ja | Keiner |
| uploadTime | Upload-Dauer | In Millisekunden; bei erfolgreichem Upload empfohlen | Nein | Leer |
| failedReason | Fehlerursache | Bei fehlgeschlagenem Upload empfohlen | Nein | Leer |
Antwort
Gibt nur die Einheitliche Antwortstruktur zurück.
Anfragebeispiel
{
"modelId": 100231987,
"status": 3,
"uploadTime": 184620
}
Modellierung abbrechen
Kann nur für Aufgaben aufgerufen werden, die gerade modelliert werden.
- Nur Aufgaben im Status „Modellierung läuft“ können abgebrochen werden. Nach dem Abbruch wechselt der Aufgabenstatus zu „Modellierung fehlgeschlagen“.
- Beim Abbruch werden Credits für die bereits verbrauchte Nutzung abgebucht; darüber hinaus eingefrorene Credits werden dem Guthaben wieder gutgeschrieben.
- Credits werden in der Regel innerhalb weniger Minuten abgerechnet, spätestens nach etwa 10 Minuten.
Endpunkt
POST /open-apis/spatial-model/v1/model/cancel
Grenzen
| Element | Grenze |
|---|---|
| Statusbeschränkung | Nur Aufgaben im Status „Modellierung läuft“ (7) können abgebrochen werden; andere Status geben 100041017 zurück |
| Parallelität | 10 Anfragen / Sekunde; Ratenbegrenzung von 3 Sekunden pro modelId, bei zu häufigen Aufrufen wird 10000003 zurückgegeben |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelId | ID der Modellierungsaufgabe | — | Ja | Keiner |
Antwort
Gibt nur die Einheitliche Antwortstruktur zurück.
Anfragebeispiel
{
"modelId": 100231987
}
Paginierte Aufgabenliste
Fragt Modellierungsaufgaben seitenweise mit Filtern ab.
Endpunkt
POST /open-apis/spatial-model/v1/model/list
Grenzen
| Element | Grenze |
|---|---|
| Datenumfang | Gibt nur Aufgaben des Kontos zurück, das mit der aktuellen appId verknüpft ist |
| Abfrage | Intervall von mindestens 5 Sekunden |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelName | Aufgabenname | Weniger als 50 Zeichen, unscharfe Suche | Nein | Beliebig |
| statusList | Aufgabenstatus | Werte siehe Zustandsautomat der Aufgabe | Nein | Beliebig |
| startTime | Startzeit | Zeitstempel in Millisekunden; filtert Datensätze, die zu oder nach startTime erstellt wurden | Nein | Beliebig |
| endTime | Endzeit | Zeitstempel in Millisekunden; filtert Datensätze, die zu oder vor endTime erstellt wurden | Nein | Beliebig |
| page.page | Seitennummer | — | Nein | 1 |
| page.limit | Seitengröße | — | Nein | Vom Server festgelegt |
| page.order | Sortierreihenfolge | ASC aufsteigend, DESC absteigend, nach Erstellungszeit | Nein | DESC |
Antwort
| Name | Typ | Bedeutung |
|---|---|---|
| data.page | Integer | Seitennummer |
| data.limit | Integer | Seitengröße |
| data.total | Long | Gesamtanzahl |
| data.data | List | Datenliste |
| data.data[].modelId | Long | ID der Modellierungsaufgabe |
| data.data[].modelName | String | Aufgabenname |
| data.data[].modelDes | String | Aufgabenbeschreibung |
| data.data[].cover | String | Cover-URL; nach Abschluss der Modellierung die gerenderte Gesamtvorschau des Modells. Signierter temporärer Link, nicht dauerhaft speichern |
| data.data[].percent | Double | Modellierungsfortschritt |
| data.data[].tags | List | Tags |
| data.data[].status | Integer | Aufgabenstatus; Werte siehe Zustandsautomat der Aufgabe |
| data.data[].errorCode | String | Fehlercode |
| data.data[].failedReason | String | Fehlerursache |
| data.data[].createTime | Long | Erstellungszeit, Zeitstempel in Millisekunden |
| data.data[].taskSuccessAt | Long | Abschlusszeit der Modellierung, Zeitstempel in Millisekunden |
Anfragebeispiel
{
"modelName": "Design Commune",
"statusList": [7, 8],
"startTime": 1790899200000,
"endTime": 1791763200000,
"page": {
"page": 1,
"limit": 20,
"order": "DESC"
}
}
Aufgabendetails
Fragt Details von Modellierungsaufgaben stapelweise ab, einschließlich Statistiken wie der Modellierungsdauer.
Endpunkt
POST /open-apis/spatial-model/v1/model/detail
Grenzen
| Element | Grenze |
|---|---|
| Stapelabfrage | Bis zu 50 modelIds pro Anfrage |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelIdList | IDs der Modellierungsaufgaben | List<Long>, bis zu 50 pro Aufruf | Ja | Keiner |
Antwort
| Name | Typ | Bedeutung |
|---|---|---|
| data.dataList | List | Aufgabendetails |
| data.dataList[].modelId | Long | ID der Modellierungsaufgabe |
| data.dataList[].modelName | String | Aufgabenname |
| data.dataList[].modelDes | String | Aufgabenbeschreibung |
| data.dataList[].cover | String | Cover-URL. Signierter temporärer Link, nicht dauerhaft speichern |
| data.dataList[].percent | Double | Modellierungsfortschritt |
| data.dataList[].tags | List | Tags |
| data.dataList[].status | Integer | Aufgabenstatus; Werte siehe Zustandsautomat der Aufgabe |
| data.dataList[].errorCode | String | Fehlercode |
| data.dataList[].failedReason | String | Fehlerursache |
| data.dataList[].createTime | Long | Erstellungszeit, Zeitstempel in Millisekunden |
| data.dataList[].rebuildInfo | Object | Modellierungsinformationen |
| data.dataList[].rebuildInfo.quality | String | Modellierungsqualität. 1 schnell, 2 Standard, 3 langsam |
| data.dataList[].rebuildInfo.autoRebuild | Integer | Kennzeichen für automatische Modellierung. 0 nur hochladen, 1 nach dem Upload automatisch modellieren |
| data.dataList[].rebuildInfo.inputTotalSize | Long | Größe der Eingabedaten in Byte |
| data.dataList[].rebuildInfo.outputTotalSize | Long | Größe der Modellierungsausgabe in Byte |
| data.dataList[].rebuildInfo.uploadTime | Long | Upload-Dauer in Millisekunden |
| data.dataList[].rebuildInfo.buildTime | Long | Modellierungsdauer in Millisekunden |
| data.dataList[].rebuildInfo.taskStartAt | Long | Startzeit der Modellierung, Zeitstempel in Millisekunden |
| data.dataList[].rebuildInfo.taskSuccessAt | Long | Zeitpunkt der erfolgreichen Modellierung, Zeitstempel in Millisekunden |
| data.dataList[].rebuildInfo.credit | Object | Credit-Abrechnungsinformationen (schreibgeschützt), zur Prüfung der Kosten dieses Modellierungslaufs. Dieses Objekt wird immer zurückgegeben; solange keine Abrechnungsdaten vorliegen, sind seine Felder null |
| data.dataList[].rebuildInfo.credit.freezeNo | String | Credit-Einfriernummer im Format SPATIAL_MODELING_{modelId}_{attempt}. Erst belegt, nachdem „Aufgabe starten“ Credits erfolgreich eingefroren hat; davor null |
| data.dataList[].rebuildInfo.credit.frozenCredit | Long | In dieser Runde eingefrorene Credits. Beim Start der Modellierung wird ein Schätzwert eingefroren; ergibt die spätere Flächenschätzung des Algorithmus einen höheren Credit-Bedarf, werden zusätzliche Credits eingefroren, und dieses Feld zeigt die Summe nach der Erhöhung |
| data.dataList[].rebuildInfo.credit.actualCredit | Long | Tatsächlich abgebuchte Credits. Vor der Abrechnung null; nach erfolgreicher oder abgebrochener Modellierung mit den Kosten gemäß tatsächlicher Nutzung belegt; 0 bei Freigabe nach fehlgeschlagener Modellierung |
| data.dataList[].rebuildInfo.credit.settleStatus | String | Abrechnungsstatus. FROZEN eingefroren, Abrechnung ausstehend; SETTLED abgerechnet und belastet (Modellierung erfolgreich oder abgebrochen); RELEASED freigegeben, Credits vollständig erstattet (Modellierung fehlgeschlagen usw.). Null, wenn nichts eingefroren ist |
| data.dataList[].rebuildInfo.credit.attempt | Integer | Modellierungsrunde, beginnend bei 1. Erhöht sich nur um 1, wenn „Aufgabe starten“ erneut aufgerufen wird; eine interne Neuverteilung durch die Plattform ändert den Wert nicht. Jede Runde hat ihre eigene freezeNo |
| data.dataList[].rebuildInfo.credit.areaM2 | Double | Vom Algorithmus geschätzte Modellierungsfläche in Quadratmetern; Grundlage für zusätzliches Einfrieren. Null, bis der Algorithmus sie meldet |
Anfragebeispiel
{
"modelIdList": [100231987, 100231988]
}
Konto-Credits
Fragt das Credit-Guthaben des mit der appId verknüpften Kontos ab.
Endpunkt
POST /open-apis/spatial-model/v1/credit/info
Grenzen
| Element | Grenze |
|---|---|
| Abfrageziel | Das Credit-Konto des mit der appId verknüpften Kontos; keine Benutzerkennung erforderlich |
| Konto nicht eröffnet | Wurden noch nie Credits ausgegeben, sind alle Guthaben 0; dies wird nicht als Fehler behandelt |
| Aktualität | Gibt das Echtzeitguthaben zum Abfragezeitpunkt zurück, ohne Caching |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
Keine Geschäftsparameter. Übergeben Sie ein leeres Objekt {}.
Antwort
| Name | Typ | Bedeutung |
|---|---|---|
| data.availableCredit | Long | Aktuell verfügbare Credits |
| data.frozenCredit | Long | Eingefrorene Credits, reserviert, aber noch nicht abgerechnet |
| data.totalCredit | Long | Gesamte Credits, gleich availableCredit plus frozenCredit |
Antwortbeispiel
{
"code": 0,
"msg": "success",
"data": {
"bizCode": 0,
"bizMsg": "",
"availableCredit": 8500,
"frozenCredit": 1500,
"totalCredit": 10000
}
}
Hinweis: Diese API fragt nur das Credit-Guthaben des Kontos ab. Die Credit-Abrechnungsregeln für Modellierungsaufgaben (Zeitpunkt der Abbuchung und Abrechnungsgrundlage) werden in einer späteren Version festgelegt und dokumentiert. In der aktuellen Version werden Aufrufe der Modellierungs-APIs nicht von den hier zurückgegebenen Werten beeinflusst.
Modellierungsergebnisse herunterladen
Ruft temporäre Download-Links für die Modellierungsergebnisse ab. Was sie enthalten, lesen Sie unter Modellierungsergebnisse.
Endpunkt
POST /open-apis/spatial-model/v1/model/data/download
Grenzen
| Element | Grenze |
|---|---|
| Voraussetzung | Der Aufgabenstatus muss „Modellierung abgeschlossen“ (8) sein |
| Gültigkeit der Links | Signierte temporäre Links; laden Sie die Dateien bald nach dem Abruf herunter und speichern Sie die Links nicht dauerhaft |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelId | ID der Modellierungsaufgabe | — | Ja | Keiner |
| type | Ergebnistyp | DXF, GLB, BLEND, RVT | Nein | Ohne Angabe werden alle erzeugten Ergebnisse zurückgegeben: DXF / GLB / BLEND sowie RVT, falls vorhanden |
Antwort
| Name | Typ | Bedeutung |
|---|---|---|
| data.dataList | List<String> | Download-Links der Modellierungsergebnisse. Signierte temporäre Links, nicht dauerhaft speichern |
Anfragebeispiel
{
"modelId": 100231987,
"type": "GLB"
}
Aufgabe löschen
Löscht eine Modellierungsaufgabe und die zugehörigen Daten.
Endpunkt
POST /open-apis/spatial-model/v1/model/del
Grenzen
| Element | Grenze |
|---|---|
| Statusbeschränkung | Aufgaben im Status „Modellierung läuft“ (7) können nicht gelöscht werden |
| Auswirkung | Entfernt auch die hochgeladenen Eingabedaten und die Modellierungsergebnisse; kann nicht rückgängig gemacht werden |
| Parallelität | 10 Anfragen / Sekunde |
Anfrageparameter
| Parameter | Bedeutung | Regel | Pflicht | Standardwert |
|---|---|---|---|---|
| modelId | ID der Modellierungsaufgabe | — | Ja | Keiner |
Antwort
Gibt nur die Einheitliche Antwortstruktur zurück.
Anfragebeispiel
{
"modelId": 100231987
}
Hinweis: Das Löschen kann nicht rückgängig gemacht werden; Eingabedaten und Modellierungsergebnisse werden zusammen entfernt. Bauen Sie auf Ihrer Seite eine zweite Bestätigung ein.