Skip to content

Commit

Permalink
Merge pull request #49 from IGNF/v2.4.0
Browse files Browse the repository at this point in the history
V2.4.0
  • Loading branch information
vinsag authored Oct 19, 2021
2 parents 8aafe15 + 27c73e8 commit ef46c2f
Show file tree
Hide file tree
Showing 21 changed files with 213 additions and 240 deletions.
2 changes: 1 addition & 1 deletion controllers/cadastre/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const validateParams = require('../../middlewares/validateParams');
const {isGeometry,isCodeInsee} = require('../../checker');
const parseInseeCode = require('../../helper/parseInseeCode');

const gppWfsClient = require('../../middlewares/gppWfsClient');
const gppWfsClient = require('../../middlewares/cadastreWfsClient');

const _ = require('lodash');

Expand Down
56 changes: 35 additions & 21 deletions controllers/er/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,37 @@ function createErProxy(featureTypeName,typeSearch){
});
}
params = _.omit(params,'apikey');
/** Gestion de la requete categorie */
if((params.date_maj_deb) && (params.date_maj_fin)) {
params.field_date = params.date_maj_deb +'T00:00:00Z;'+ params.date_maj_fin+'T23:59:59Z';
params = _.omit(params,'date_maj_deb');
params = _.omit(params,'date_maj_fin');

} else {
if((params.date_maj_deb) || (params.date_maj_fin)) {
return res.status(400).send({
code: 400,
message: 'Utilisation des dates avec une date de fin et une date de debut avec moins de 6 mois entre les 2 dates.'
});
/** Gestion de la requete product */

if (typeSearch == 'product') {
//For module Product utilisation parametre name pour la recherche
if (params.name) {
params.namepr = params.name.toUpperCase();
params = _.omit(params,'name');
}
if((params.date_maj_deb) && (params.date_maj_fin)) {
params.field_date = params.date_maj_deb +'T00:00:00Z;'+ params.date_maj_fin+'T23:59:59Z';
params = _.omit(params,'date_maj_deb');
params = _.omit(params,'date_maj_fin');


} else {
if((params.date_maj_deb) || (params.date_maj_fin)) {
return res.status(400).send({
code: 400,
message: 'Utilisation des dates avec une date de fin et une date de debut avec moins de 6 mois entre les 2 dates.'
});
}
}
//For _propertyNames, we need to transform the string in Array
if(params._propertyNames) {
params._propertyNames = params._propertyNames.split(';');
}
if((params.has_geometry) &&(!((params.field_date) || (params._limit)))) {
params.has_geometry =true;
}
}
//For module Product utilisation parametre name pour la recherche
if ((typeSearch == 'product') && (params.name)) {
params.namepr = params.name.toUpperCase();
params = _.omit(params,'name');
}

}

// For module Category Gestion du parametre name
if (typeSearch == 'category') {
Expand Down Expand Up @@ -139,8 +151,7 @@ var erValidators = [
check('geom').optional().custom(isGeometry),
check('_limit').optional().isNumeric(),
check('_start').optional().isNumeric(),
check('date_maj_deb').optional().isString(), // Param ne servant que pour admin
check('date_maj_fin').optional().isString() // Param ne servant que pour admin
check('_propertyNames').optional().isString()
];

var productValidators = erValidators.concat([
Expand All @@ -149,7 +160,10 @@ var productValidators = erValidators.concat([
check('name').optional().isString(),
check('sale').optional().isNumeric(),
check('type').optional().isString(),
check('publication_date').optional().isString()
check('publication_date').optional().isString(),
check('date_maj_deb').optional().isString(), // Param ne servant que pour admin
check('date_maj_fin').optional().isString() // Param ne servant que pour admin


]);

Expand Down
2 changes: 1 addition & 1 deletion controllers/rpg/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const { matchedData } = require('express-validator/filter');
const validateParams = require('../../middlewares/validateParams');
const {isGeometry} = require('../../checker');

const gppWfsClient = require('../../middlewares/gppWfsClient');
const gppWfsClient = require('../../middlewares/rpgWfsClient');

const _ = require('lodash');
const lastYearRPG = 2019;
Expand Down
6 changes: 5 additions & 1 deletion doc/aoc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ info:
Consultez la [documentation utilisateur](https://apicarto.ign.fr/api/doc/pdf/docUser_moduleAoc.pdf) pour plus d’informations sur les paramètres d’appel disponibles et le format des résultats.
Dernière mise à jour des données : 23 Avril 2021
Dernière mise à jour des données : 06 Juillet 2021
## Géométrie
Expand All @@ -36,6 +36,10 @@ info:
* Surface trouée :
`{"type":"Polygon","coordinates":[[[1.2,48.85],[1.3,48.85],[1.3,48.9],[1.2,48.9],[1.2,48.85]],[[1.23,48.86],[1.23,48.88],[1.26,48.88],[1.26,48.86],[1.23,48.86]]]}`
* Linéaire :
`{"type":"LineString","coordinates":[[4.681549,47.793784],[4.741974,47.788248]]}`
Expand Down
75 changes: 16 additions & 59 deletions doc/cadastre.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,7 @@ info:
Consultez la [documentation utilisateur](https://apicarto.ign.fr/api/doc/pdf/docUser_moduleCadastre.pdf) pour plus d’informations sur les paramètres d’appel disponibles et le format des résultats.
## Clé WFS géoportail (apikey)
Ce service se repose sur l'appel à des services WFS de l'API géoportail de l'IGN. Si cette clé n'est pas définie sur le serveur API Carto, il faut passer une clé IGN en paramètre sous le nom `apikey`.
Pour obtenir une clé geoportail, vous devez vous connecter au site : https://geoservices.ign.fr .
Lors de votre demande de clé IGN, vous devez commander les flux "Ressources WFS Géoportail - BD PARCELLAIRE®" ci-dessous:
* BD Parcellaire COMMUNE
* BD Parcellaire DIVCAD
* BD Parcellaire LOCALISANT
* BD Parcellaire PARCELLE
Si vous souhaitez utiliser les ressources PCI-EXPRESS vous devez commander les flux "Ressources WFS Géoportail - CADASTRALPARCELS®" ci-dessous:
* CADASTRALPARCELS.PARCELLAIRE_EXPRESS:commune
* CADASTRALPARCELS.PARCELLAIRE_EXPRESS:feuille
* CADASTRALPARCELS.PARCELLAIRE_EXPRESS:localisant
* CADASTRALPARCELS.PARCELLAIRE_EXPRESS:parcelle
Utilisation des ressources :
## Utilisation des ressources :
Le champ *source_ign* permet de définir la ressource utilisée par l'API :
Expand All @@ -49,14 +29,8 @@ info:
La recherche des sections cadastrales se fait au travers de l'API feuille PCI Express et division BD Parcellaire selon le produit utilisé.
## Historique des changements
* Suppression /cadastre/geometrie : récupération des parcelles avec calcul de surfaces
* Uniformisation des noms d'attribut et paramètres de filtrage. Paramètre de filtrage = nom de l'attribut (codearr => code_arr, insee => code_insee, etc.)
* Ajout de la possibilité d'utiliser les couches PCI EXPRESS ou les couches BD PARCELLAIRE
* Création de la valeur BDP pour l'attribut *source_ign*.
Exemple de géométrie : (référentiel EPSG:4326)
**Exemple de géométrie : (référentiel EPSG:4326)**
* Point:
Expand All @@ -66,16 +40,29 @@ info:
`{"type":"MultiPolygon","coordinates":[[[[-0.288863182067871,48.963666607295977],[-0.299592018127441,48.959299208576141],[-0.296330451965332,48.955325952385039],[-0.282125473022461,48.950675995388366],[-0.279722213745117,48.967019382922331],[-0.288863182067871,48.963666607295977]]]]}`
* Surface trouée:
* Polygone trouée:
`{"type":"Polygon","coordinates":[[[1.2,48.85],[1.3,48.85],[1.3,48.9],[1.2,48.9],[1.2,48.85]],[[1.23,48.86],[1.23,48.88],[1.26,48.88],[1.26,48.86],[1.23,48.86]]]}`
* Linéaire:
`{"type":"LineString","coordinates":[[4.681549,47.793784],[4.741974,47.788248]]}`
**Informations importantes**
* Le produit BD Parcellaire est un produit historique qui n'est plus mis à jour. Il est donc fortement conseillé d'utiliser le produit Parcellaire Express qui bénéficie d'une mise à jour semestrielle. [Voir la documentation de comparaison des deux produits](https://geoservices.ign.fr/ressources_documentaires/Espace_documentaire/PARCELLAIRE_CADASTRAL/Parcellaire_Express_PCI/Comparatif_PEPCI_BDPARCELLAIRE.pdf).
* L'attribut *source_ign* est actuellement par défaut (valeur non remplie) interprété comme BD Parcellaire, en janvier 2022 l'API évoluera et ce sera la valeur Parcellaire Express qui sera prise par défaut.
## Historique des changements
* Suppression /cadastre/geometrie : récupération des parcelles avec calcul de surfaces
* Uniformisation des noms d'attribut et paramètres de filtrage. Paramètre de filtrage = nom de l'attribut (codearr => code_arr, insee => code_insee, etc.)
* Ajout de la possibilité d'utiliser les couches PCI EXPRESS ou les couches BD PARCELLAIRE
* Création de la valeur BDP pour l'attribut *source_ign*.
* Suppression du paramètre *apikey*
contact:
name: API Carto Cadastre

Expand All @@ -92,12 +79,6 @@ paths:
Retourne un résultat de Type "FeatureCollection".
parameters:

- name: apikey
in: query
description: Clé WFS géoportail
type: string
required: false

- name: code_insee
in: query
description: Code insee de la commune sur 5 caractères
Expand Down Expand Up @@ -153,12 +134,6 @@ paths:
* Paramètre Insee + section => Retour des divisions parcellaires d'une section dans une commune
parameters:

- name: apikey
in: query
description: Clé WFS géoportail
type: string
required: false

- name: code_insee
in: query
description: Code insee de la commune sur 5 caractères
Expand Down Expand Up @@ -229,12 +204,6 @@ paths:
* Paramètre Insee + section => Retour des feuilles d'une section dans une commune
parameters:

- name: apikey
in: query
description: Clé WFS géoportail
type: string
required: false

- name: code_insee
in: query
description: Code insee de la commune sur 5 caractères
Expand Down Expand Up @@ -303,12 +272,6 @@ paths:
Retourne un résultat de Type "FeatureCollection" avec différentes informations sur les parcelles cadastrales.
parameters:

- name: apikey
in: query
description: Clé WFS géoportail
type: string
required: false

- name: code_insee
in: query
description: Code insee de la commune sur 5 caractères
Expand Down Expand Up @@ -386,12 +349,6 @@ paths:
- Localisant
parameters:

- name: apikey
in: query
description: Clé WFS géoportail
type: string
required: false

- name: code_insee
in: query
description: Code insee de la commune sur 5 caractères
Expand Down
25 changes: 24 additions & 1 deletion doc/er.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ paths:
description: Géométrie au format GeoJson
schema:
$ref: '#/definitions/Geometry'

- name: date_maj_deb
in: query
description: Date début de mise à jour sous la forme AAAA-MM-JJ
Expand All @@ -102,6 +102,13 @@ paths:
type: integer
required: false

- name: _propertyNames
in: query
description: liste des propriétes à afficher séparées par un ;
type: string
require: false



responses:
'200':
Expand Down Expand Up @@ -162,6 +169,13 @@ paths:
description: Position pour le début de la recherche
type: integer
required: false

- name: _propertyNames
in: query
description: liste des propriétes à afficher séparées par un ;
type: string
require: false


tags:
- grid
Expand Down Expand Up @@ -218,6 +232,13 @@ paths:
description: Position pour le début de la recherche
type: integer
required: false

- name: _propertyNames
in: query
description: liste des propriétes à afficher séparées par un ;
type: string
require: false


tags:
- category
Expand Down Expand Up @@ -294,6 +315,8 @@ definitions:
type: string
vat:
type: string
has_geometry:
type: boolean
geometry:
$ref: '#/definitions/MultiPolygon'

Expand Down
Loading

0 comments on commit ef46c2f

Please sign in to comment.