Skip to content

Service liste Iris #104

@EmmanuelDemey

Description

@EmmanuelDemey

Service de liste

Iris

L’Iris est un découpage infra-communal.

Seules les plus grandes communes (environ 2000) sont découpées en Iris. Le reste du territoire n’est pas couvert par ce zonage.

Toutefois, pour répondre au mieux aux besoins des utilisateurs, l’API devrait renvoyer une partition du territoire. Pour cela, en plus des Iris, elle renverra un faux Iris pour chaque commune non découpée, avec comme code le code de la commune suivi de « 0000 » (les code des Iris étant deux mêmes composés du code commune suivi de quatre chiffres). L’URI de ces faux Iris reste celui de communes, ainsi que leur nom et les autres informations qui les concernent.

Par ailleurs les Iris possèdent un « type d’Iris » qui est le plus généralement « H » (habitation) mais qui peut également être « A » (activité) ou « D » (divers).

Requête

Méthode Requête Description
GET /iris Récupérer les informations concernant les Iris

Paramètres

Paramètres Description Type
date La requête renvoie tous les iris actifs à la date donnée. Par défaut, c’est la date courante. Date

Exemples de requête

/geo/iris

/geo/iris?date=2023-01-01

Champs de la réponse

Champ Description
URI URI de l’Iris
Type « Iris » ou « Commune »
Code Code Insee de l’Iris
Intitule Nom de l’Iris (avec article)
IntituleSansArticle Nom de l’Iris sans article
TypeArticle Code article du nom de l’Iris. Attribut du champ IntituleSansArticle
TypeDIris Code du type d’Iris (H, A ou D)
DateCreation Date de création de l’Iris
DateSuppression Date de suppression de l’Iris s’il a été supprimé

Exemple de réponse en XML

<Territoires>
	<Commune code="010010000" uri="http://id.insee.fr/geo/commune/166857ef-114f-4067-9d3d-f712562850c5">
		<Intitule>L'Abergement-Clémenciat</Intitule>
		<IntituleSansArticle typeArticle="5">Abergement-Clémenciat</IntituleSansArticle>
		<DateCreation>1943-01-01</DateCreation>
	</Commune>
	<Commune code="010020000" uri="http://id.insee.fr/geo/commune/43018c68-c278-433a-b285-3531e8d5347e">
		<Intitule>L'Abergement-de-Varey</Intitule>
		<IntituleSansArticle typeArticle="5">Abergement-de-Varey</IntituleSansArticle>
		<DateCreation>1943-01-01</DateCreation>
	</Commune>
	<Iris code="010040101" uri="http://id.insee.fr/geo/iris/b8c772de-9551-4f13-81c5-eca5bb0f2f7d">
		<Intitule>Les Pérouses-Triangle d'Activités</Intitule>
		<IntituleSansArticle typeArticle="4">Pérouses-Triangle d'Activité</IntituleSansArticle>
		<TypeDIris>H</TypeDIris>
		<DateCreation>2008-01-01</DateCreation>
	</Iris>
...
</Territoires>

Exemple de réponse en JSON

[
	{
		"type": "Commune",
		"code": "010010000",
		"uri": "http://id.insee.fr/geo/commune/166857ef-114f-4067-9d3d-f712562850c5",
		"intitule": "L'Abergement-Clémenciat",
		"intituleSansArticle": "Abergement-Clémenciat",
		"typeArticle": "5",
		"dateCreation": "1943-01-01"
	},
	{
		"type": "Commune",
		"code": "010020000",
		"uri": "http://id.insee.fr/geo/commune/43018c68-c278-433a-b285-3531e8d5347e",
		"intitule": "L'Abergement-de-Varey",
		"intituleSansArticle": "Abergement-de-Varey",
		"typeArticle": "5",
		"dateCreation": "1943-01-01"
	},
	{
		"type": "Iris",
		"code": "010040101",
		"uri": "http://id.insee.fr/geo/iris/b8c772de-9551-4f13-81c5-eca5bb0f2f7d",
		"intitule": "Les Pérouses-Triangle d'Activités",
		"intituleSansArticle": "Pérouses-Triangle d'Activité",
		"typeArticle": "4",
		"typeDIris": "H",
		"dateCreation": "2008-01-01"
	}
...
]

Exemple de requête SPARQL

PREFIX igeo: <http://rdf.insee.fr/def/geo#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?uri ?type ?code ?nom ?nomSansArticle ?codeArticle ?typeDIris ?dateDebut ?dateFin
WHERE {
	{
		?s a igeo:Iris ;
			igeo:typeDIRIS ?uriTypeDIris ;
			igeo:codeINSEE ?code .
		BIND(SUBSTR(STR(?uriTypeDIris ), STRLEN(STR(?uriTypeDIris )), 1) AS ?typeDIris)
	}
	UNION
	{
		?s a igeo:Commune ;
			igeo:codeINSEE ?codeCommune .
		OPTIONAL {
			?iris igeo:subdivisionDirecteDe+ ?s ; a igeo:Iris .
			OPTIONAL {?iris ^igeo:creation/igeo:date ?dateDebutIris }
			OPTIONAL {?iris ^igeo:suppression/igeo:date ?dateFinIris }
			FILTER (!BOUND(?dateDebutIris) || ?dateDebutIris <= NOW() )
			FILTER (!BOUND(?dateFinIris) || ?dateFinIris > NOW() )
		}
		FILTER (!BOUND(?iris))
		BIND(CONCAT(?codeCommune, '0000') AS ?code)
	}
	?s igeo:nom ?nom;
		igeo:codeArticle ?codeArticle ;
		igeo:nomSansArticle ?nomSansArticle ;
		a ?typeRDF .
	BIND(STR(?typeRDF) AS ?type).
	BIND(STR(?s) AS ?uri).
	OPTIONAL {?s ^igeo:creation/igeo:date ?dateDebut }
	OPTIONAL {?s ^igeo:suppression/igeo:date ?dateFin }
	FILTER (!BOUND(?dateDebut) || ?dateDebut <= NOW() )
	FILTER (!BOUND(?dateFin) || ?dateFin > NOW() )
}
ORDER BY ?code

Avec le paramètre date :

PREFIX igeo: <http://rdf.insee.fr/def/geo#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?uri ?type ?code ?nom ?nomSansArticle ?codeArticle ?typeDIris ?dateDebut ?dateFin
WHERE {
	{
		?s a igeo:Iris ;
			igeo:typeDIRIS ?uriTypeDIris ;
			igeo:codeINSEE ?code .
		BIND(SUBSTR(STR(?uriTypeDIris ), STRLEN(STR(?uriTypeDIris )), 1) AS ?typeDIris)
	}
	UNION
	{
		?s a igeo:Commune ;
			igeo:codeINSEE ?codeCommune .
		OPTIONAL {
			?iris igeo:subdivisionDirecteDe+ ?s ; a igeo:Iris .
			OPTIONAL {?iris ^igeo:creation/igeo:date ?dateDebutIris }
			OPTIONAL {?iris ^igeo:suppression/igeo:date ?dateFinIris }
			FILTER (!BOUND(?dateDebutIris) || ?dateDebutIris <= '2023-01-01'^^xsd:date )
			FILTER (!BOUND(?dateFinIris) || ?dateFinIris > '2023-01-01'^^xsd:date )
		}
		FILTER (!BOUND(?iris))
		BIND(CONCAT(?codeCommune, '0000') AS ?code)
	}
	?s igeo:nom ?nom;
		igeo:codeArticle ?codeArticle ;
		igeo:nomSansArticle ?nomSansArticle ;
		a ?typeRDF .
	BIND(STR(?typeRDF) AS ?type).
	BIND(STR(?s) AS ?uri).
	OPTIONAL {?s ^igeo:creation/igeo:date ?dateDebut }
	OPTIONAL {?s ^igeo:suppression/igeo:date ?dateFin }
	FILTER(!BOUND(?dateCreation) || ?dateCreation <= '2023-01-01'^^xsd:date)
	FILTER(!BOUND(?dateSuppression) || ?dateSuppression > '2023-01-01'^^xsd:date)
}
ORDER BY ?code

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions