Il est possible de télécharger les données de manière programmatique, en utilisant l'API d'extraction.
Voici comment l'utiliser :
Utilisation simple
1. Création de l'extraction
Effectuer une requête GET sur le endpoint suivant :
https://extract.sitg.ge.ch/files/<identifiant>-<format>
Header :
Accept:application/json
Par exemple :
https://extract.sitg.ge.ch/files/CAD_ADRESSE-gdb
La réponse aura la forme suivante :
{
...,
"status": "NOT_STARTED",
...,
"output_url": null,
...
}
La propriété status indique l'état de l'extraction, tandis que la propriété output_url fournit l'url de téléchargement.
Paramètres
Vous pouvez retrouver les identifiants sur le portail, sur la fiche de chaque jeu de données:
Pour obtenir la liste des formats disponibles pour un jeu de données, effectuer une requête sur le endpoint suivant :
https://extract.sitg.ge.ch/donnees?ids=<identifiant>
Par exemple :
https://extract.sitg.ge.ch/donnees?ids=CAD_ADRESSE
La réponse aura la forme suivante :
[
{
"profilsExtraction": [
{
...,
"formatsExport": [
{
"identifiant": "gdb",
"description": "Esri File Geodatabase",
"surfaceMaxExtractible": null
},
{
"identifiant": "shp",
"description": "Shapefile",
"surfaceMaxExtractible": null
},
...
],
...
}
],
...
"surfaceMaxExtractible": null
}
]
Les formats à utiliser dans la requête d'extraction sont listés dans la propriété identifiant (e.g. gdb).
2. Vérifier l'état de l'extraction
Si cette dernière n'est pas disponible, alors l'extraction n'est pas encore terminée. Il faut relancer la même requête pour obtenir une mise à jour de l'état de l'extraction, jusqu'à ce que l'url soit affichée.
{
...,
"status": "DONE",
...,
"output_url": "https://extract.sitg.ge.ch/files/CAD_ADRESSE-gdb",
...
}
3. Télécharger l'extraction
Pour télécharger le jeu de donnée, effectuez une requête GET sur l'url indiquée par output_url, avec le header Accept par défaut défini sur */*.
Utilisation avancée
1. Création de l'extraction
Générer un UUID4 de 32 caractères, par exemple, avec l'aide du site https://www.uuidgenerator.net/version4
Exemple : 0bd9cae4-8747-44a4-86a0-f79ae60cecee
Effectuer une requête POST sur le endpoint suivant :
https://extract.sitg.ge.ch/orders
Ajouter le header X-ANONYMOUS-ID à la requête avec la valeur du UUID4 généré précédement.
Avec le payload JSON suivant (exemple) :
{
"name": "Extraction CAD_ADRESSE en gdb", // Nom de l'extraction
"items": [ // Liste des données à extraire
{ // Donnée 1
"layer_id": "CAD_ADRESSE", // Identifiant de la donnée
"profils": [
{
"profil": "VECTOR",
"format_export": "gdb", // Format d'export
"projection": 2056, // Système de coordonnées de sortie
"relation_spatiale": "INTERSECTION" // Relation spatiale à utiliser en cas d'extraction partielle selon une emprise
}
],
"geometry": { // Emprise d'extraction
"coordinates": [
[
[
2499255.6433769963,
1116702.9467326268
],
[
2499255.6433769963,
1119492.718978838
],
[
2502168.1825354076,
1119492.718978838
],
[
2502168.1825354076,
1116702.9467326268
],
[
2499255.6433769963,
1116702.9467326268
]
]
],
"type": "Polygon"
},
"offset_x": 0, // BIM uniquement, origine X du projet
"offset_y": 0 // BIM uniquement, origine Y du projet
},
{ // Donnée 2
"layer_id": ...
...
}
]
}
La réponse aura la forme suivante :
{
"id": 33431,
...
}
Paramètres
- items : bloc à dupliquer pour chaque donnée à extraire
- layer_id : identifiant de la donnée, à retrouver sur le portail, voir extraction simple
- profils : profil d'extraction à utiliser, voir plus bas
- geometry : emprise d'extraction. Si nulle, la totalité des données seront extraites
- offset_x, offset_y : Origine du projet, uniquement pour le BIM
Pour obtenir les informations de profil d'extraction, effectuer une requête sur le endpoint suivant :
https://extract.sitg.ge.ch/donnees?ids=<identifiant>
Par exemple :
https://extract.sitg.ge.ch/donnees?ids=CAD_ADRESSE
La réponse aura la forme suivante :
[
{
"profilsExtraction": [
{
"projections": [
{
"numero": 2056,
"nom": "CH1903+ / LV95"
},
...
],
"relationsSpatiale": [
{
"identifiant": "INTERSECTION",
"nom": "Intersection"
},
...
],
"formatsExport": [
{
"identifiant": "gdb",
"description": "Esri File Geodatabase",
"surfaceMaxExtractible": null
},
...
],
...
"identifiant": "VECTOR",
...
}
],
...
}
]
Les informations de profil d'extraction sont à remplir de la façon suivante :
- profil -> profilsExtraction.identifiant
- format_export -> profilsExtraction.formatsExport.identifiant
- projection -> profilsExtraction.projections.numéro
- relation_spatiale -> profilsExtraction.relationsSpatiale.identifiant
2. Vérifier l'état de l'extraction
Pour obtenir l'état d'avancement d'une extraction, effectuer une requête GET sur le endpoint suivant :
https://extract.sitg.ge.ch/orders/<order_id>
order_id étant la propriété id renvoyée par la requête de création de l'extraction.
Il faut également ajouter le header X-ANONYMOUS-ID à la requête avec la valeur du UUID4 utilisé pour la création de l'extraction.
Exemple :
https://extract.sitg.ge.ch/orders/33431
La réponse aura la forme suivante :
{
...,
"status": "NOT_STARTED",
...,
"output_url": null,
...
}
La propriété status indique l'état de l'extraction, tandis que la propriété output_url fournit l'url de téléchargement.
Si cette dernière n'est pas disponible, alors l'extraction n'est pas encore terminée. Il faut relancer la même requête pour obtenir une mise à jour de l'état de l'extraction, jusqu'à ce que l'url soit affichée.
[
{
"id": 33431,
...
"status": "DONE",
...
"output_url": "https://extract.sitg.ge.ch/files/2026_09_23-11_15_14_extraction-cad_adresse-en-gdb?access_key=65794a6859324e6c63334e6661325635496a6f694d6a4e684d7a6c6c596d4e6b4e5451784e445a6b4e3245774e6a52694e5749774e6d566c59574931596a496966513a4767674768524c764a687368616571647766376c384430554878376c3742614e6572445377667835774367",
...
}
]
3. Télécharger l'extraction
Pour télécharger le jeu de donnée, effectuez une requête GET sur l'url indiquée par output_url, avec le header Accept par défaut défini sur */*, et le header X-ANONYMOUS-ID avec la valeur du UUID4 utilisé pour la création de l'extraction