Giter VIP home page Giter VIP logo

iris's Introduction

IMMO DATA API

Ce projet permet le traitement, la manipulation, et l'exposition d'une API pour la gestion d'un certain nombres de données immobilières :

  • Géolocalisation des données IRIS
  • Géolocalisation des données de Cadastre
  • Géolocalisation des données Sitadel

Ce projet est initialement inspiré de https://github.com/BaseAdresseNationale/iris

Installation

Ce projet a été testé avec Node.js v12

yarn

IRIS

Récupération des données

$ cd data-iris
$ ./0-download.sh

Génération des données

Les données sont récupérées depuis le FTP de l'IGN.

$ yarn run build-iris

Ce script va permettre de générer le fichier dist/iris.json qui sera employé :

  • pour la génération des données de cadastre géolocalisée
  • pour la génération des données de sitadel géolocalisées
  • pour l'API exposée

Cadastre

Récupération des données

Les données sont récupérées depuis https://cadastre.data.gouv.fr

$ cd data-cadastre
$ ./0-download.sh

Génération des données

$ yarn run build-cadastre

Ce script va permettre de générer les fichiers dist/cadastre-{DEP}.json ou {DEP} est le numéro du département.

La gération des information de cadatre géolocalisée nécessite d'avoir le fichier dist/iris.json de présent

Les fichier de cadastres seront utilisés :

  • pour la génération des données de sitadel géolocalisées
  • pour l'API exposée

SITADEL

Récupération des données

Les données sont récupérées depuis https://www.data.gouv.fr/api/1/datasets/5a5f4f6c88ee387da4d252a3

$ cd data-sitadel
$ ./0-download.sh

Génération des données

$ yarn run build-sitadel

Ce script va manipuler l'ensemble des fichiers CSV présents dans le dossier data-sitadel et créer des nouveaux fichier iris-{NOM_DU_FICHIER}.csv contenant une colonne supplémentaire : CODE_IRIS

La gération des information de cadatre géolocalisée nécessite d'avoir les fichiers dist/cadastre-{DEP}.json de présent

Lancement de l'API

L'API nécessite 4 Go de mémoire vive disponible.

yarn start

Par défaut l'API écoute sur le port 5000. Vous pouvez changer de port en utilisant la variable d'environnement PORT

Documentation de l'API

/cadastre

GET /cadastre?dep={dep}&id={id}

Paramètre Description
dep Numéro de département
id Numéro de parcelle

Exemple : http://localhost:5000/cadastre?dep=01&id=01072000AC0367

Exemple de retour :

[
  {
    "type": "Feature",
    "properties": {
      "id": "01072000AC0367",
      "codeCommune": "01072",
      "prefixe": "000",
      "section": "AC",
      "lon": 5.317502248995701,
      "lat": 46.18710030748923,
      "codeIris": "010720000"
    },
    "geometry": null
  }
]

/cadastre-by-iris

GET /cadastre-by-iris?dep={dep}&codeIris={codeIris}

Paramètre Description
dep Numéro de département
codeIris Code IRIS

Exemple : http://localhost:5000/cadastre-by-iris?dep=01&codeIris=020040000

/iris-by-code

GET `/iris-by-code?codeIris={codeIris}

Paramètre Description
codeIris Code IRIS

Exemple : http://localhost:5000/cadastre-by-iris?codeIris=132010101

Exemple de retour :

[
  {
    "type": "Feature",
    "properties": {
      "nomCommune": "Marseille 1er Arrondissement",
      "codeCommune": "13201",
      "iris": "0101",
      "codeIris": "132010101",
      "nomIris": "La Bourse",
      "typeIris": "A"
    },
    "geometry": {
      "type": "Polygon",
      "coordinates": []
    }
  }
]

GET /iris?lon={longitude}&lat={latitude}&codeCommune={codeCommune}

Paramètre Description
lat Latitude du point (WGS-84)
lon Longitude du point (WGS-84)
codeCommune Code (INSEE) de la commune considérée

Exemple : http://localhost:5000/iris?lon=6.14144&lat=49.14875&codeCommune=57415

Exemple de retour :

{
  "nomCommune":"Lorry-lès-Metz",
  "codeCommune":"57415",
  "iris":"0000",
  "codeIris":"574150000",
  "nomIris":"Lorry-lès-Metz",
  "typeIris":"Z"
}

Erreurs

En cas de requête mal formée, l'API retourne une erreur 400. Si aucun IRIS n'est trouvé, l'API retourne une erreur 404.

Licence

Le code est placé sous licence MIT.

iris's People

Contributors

npotier avatar jdesboeufs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.