3liz / QgisCadastrePlugin

A QGIS plugin which helps users to import the french land registry ('cadastre') data into a database. It is meant to ease the use of the data in QGIS by providing search tools and appropriate layer symbology.
GNU General Public License v2.0
60 stars 41 forks source link

table commune_majic #333

Closed olivierdurr closed 2 years ago

olivierdurr commented 2 years ago

Description du bug

lors de l'import edigeo et majic la table commune_majic n'est pas remplie par toutes les communes; j'ai essayé avec 3 communautés de communes différentes et il manque 9 communes sur 42 pour la 1ere, 5 sur 41 pour la 2e et 12 sur 27 pour la 3e; et la vérification me montre que toutes les communes qui manquent ont un nom avec un ou deux traits d'union, mais quelques communes sont tout de même passées !!!

Reproduire le bug

Etapes pour reproduire le bug (remplacer)

  1. Ouvrir la fenêtre d'import des données
  2. Créer un schéma postgis
  3. Lancer l'import edigeo et majic
  4. il n'y a aucun message d'erreur et la table geo_commune est bien remplie avec toutes les communes; c'est la table commune_majic qui n'est pas bien remplie; le problème est que c'est cette table qui est utilisée par le plugin openads que vous êtes en train de développer pour importer les communes. J'ai également mis un issue sur le plugin openads

Environnement

rldhont commented 2 years ago

Pour corriger le problème, il faut modifier les fichiers majic3_formatage_donnees.sql en modifier la fonction de création de la table commune_majic avec le code suivant

INSERT INTO [PREFIXE]commune_majic
(
    commune, annee, ccodep, ccodir, ccocom, libcom, lot
)
SELECT
  REPLACE(SUBSTRING(tmp,1,6),' ', '0') AS commune,
  '[ANNEE]',
  SUBSTRING(tmp,1,2) AS ccodep,
  SUBSTRING(tmp,3,1) AS ccodir,
  SUBSTRING(tmp,4,3) AS ccocom,
  trim(SUBSTRING(tmp,17)) AS libcom,
  '[LOT]' as lot
FROM [PREFIXE]bati WHERE trim(SUBSTRING(tmp,7,10))='' AND trim(SUBSTRING(tmp,4,3)) != '';

A tester avec par exemple:

570                  MOSELLE                       D405052021  202100000000018           00008432042                                                  
570136          CHEMERY LES DEUX
570152          CONTZ-LES-BAINS
570309          HEINING LES BOUZONVILLE
570361          KERLING-LES-SIERCK
570364          KIRSCH-LES-SIERCK
570439          MANDEREN-RITZING
570502          NEUNKIRCHEN LES BOUZONVILLE
570610          SAINT FRANCOIS LA CROIX
570650          SIERCK-LES-BAINS