Message posté par : francoisb (baret.francois(a)gmail.com)
----------------------------------------
Bonjour à toutes et tous,
Je souhaite partager les problèmes que j'ai rencontré sur l'utilisation du Plugin Cadastre dans sa version v1.10 (correctif n°2), savoir si vous avez pu constater des résultats équivalents, et comment vous avez solutionné le problème.
Nous avons récemment changé de version de Plugin Cadastral (1.7.1 -> 1.10.2) car la structure des données Majic évolue constamment. Il est donc logique de prendre une version tenant compte de ces évolutions (ex : la v1.9 prend en compte la structure Majic 2020) ; ainsi nous avons retenu la dernière en date.
Processus d'intégration visé : Edigeo+Majic -> Sqlite sur 1 commune du département 74
En fin de traitement, nous avons constaté :
- manque d'informations via l'outil info_parcelle : VIDE pour Résumé / Propriétaires / Subdivisions / Locaux
- relevé parcellaire / relevé de propriété non fonctionnel
- des tables vides (geo_unite_fonciere)
- une vue incomplète (v_geo_parcelle)
- des tables incomplètes (parcelle_info) -> manques d'éléments issus de jointure à l'intégration (proprio, voie, etc.)
- pour les tables de données Majic (ex : parcelle, pev, local00, etc.) des identifiants commençant par '2020'
- pour les tables de données Majic (ex : parcelle, pev, local00, etc.) des "clé étrangère" (dans l'esprit) commençant par '2020''
- pour 1 table de données Majic (local10) 1 "clé étrangère" (dans l'esprit) commençant par '74' - local00 - alors que l'identifiant de la table local00 ne contient pas '74'
Nous avons solutionné les éléments évoqués en faisant ceci :
- modifier les identifiant comportant le millésime de l'année (suppression de '2020') ;
- modifier les "clés étrangères" (dans l'esprit) comportant le millésime de l'année (suppression de '2020') ;
- modifier la "clé étrangère" (dans l'esprit) local00 de la table local10 (suppression de '74') ;
- relancer le script de création de geo_unite_fonciere
- relancer le script de création de parcelle_info
Note 1 : la modification de la date dans l'import cadastre (ex : 2020->2013) confirme que c'est cette valeur qui est en cause pour les champs avec préfixe '2020'
Note 2 : le changement du préfixe pour le champ local00 de la table local10 (suppression de '74') a permis d'afficher les données du local dans la fenêtre 'd'infos parcelle'
Nous ne garantissons pas d'avoir complètement rétabli la cohérence de la base de données, mais suffisamment pour pouvoir refaire fonctionner les outils de cadastre de façon correcte par rapport aux usages principaux.
Nous prévoyons de faire une remontée auprès des développeurs de l'application Cadastre sur GitHub.
Je vous sollicite pour savoir :
- si certains ont pu constater ce type de problématique avec l'outil Cadastre ?
- si vous avez des infos sur la cause du problème ?
a. Bug d'écriture des scripts d'import ?
b. Problème de suivi des scripts d'import VS modèle de données ou contenu des tables MAJIC nouvelle version ?
c. Autre ?
- si vous avez pu solutionner ceci, et comment ?
Je vous remercie par avance pour vos retours, et vous souhaite une bonne année 2021 (espérons) !
François B. (Géomaticien/Formateur INFOSIG)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339606#p339606
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : bar (ybarrillon(a)laposte.net)
----------------------------------------
Bonjour
Je me permet de relancer ce post...
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339683#p339683
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Lison94
----------------------------------------
D'accords merci pour votre réponse
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339681#p339681
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : LAURENT
----------------------------------------
Bonjour à tous.
Mon but final est de pouvoir à partir d'un code Python (Je travaille directement dans la console python de QGIS pour l'instant). Dans en second temps je l’intégrerai dans un plugin. Le but est de créer un bouton qui me permettrait en un clic de créer un symbole et de remplir la table attributaire avec des valeurs identiques pour certaines colonnes. Pour pouvoir créer une multitude de boutons par la suite aux paramètres différents.
J'ai développé en partie le code ci-dessous, avec lequel je souhaite en clic de souris pouvoir récupérer les coordonnées sous ma souris, créer un symbole a ces cordonnées, tout en remplissant la table attributaire avec toujours les mêmes paramètres.
Dans l’organisation de mes couches QGIS : J’ai intégré mes couches un groupe qui s’appelle 2021. La couche que je souhaite remplir s'appelle 'Activity'.
J'ai décomposé le code en différentes fonctions. C’est à dire que je récupére bien mes cordonnées sur un clic souri, j'arrive à les stocker dans ma liste. Et et mais, dans un second temps je suis obligé de taper le nom de ma fonction c'est à dire Apoint() pour que le point soit créé comme je le souhaite.
J'ai essayé pleins de choses mais je n'arrive pas à enchainer les codes avec une seul action. En clic faire les deux choses en même temps.
J’ai bien essayé de tous mettre dans la même fonction mais ça ne fonctionne pas plus.
Rmq : J’ai intégré des print dans mon code c’est juste pour vérifier si le codes est correct.
Quelqu’un aurait il une idée pour ressoudre ce probléme.
Merci d’avance pour votre aide.
Code:
from qgis.gui import QgsMapToolEmitPoint
Lat=[]
Long=[]
def display_point(point, mouse_button):
coords = "Map Coordinates: {:.4f}, {:.4f}".format(point.x(), point.y())
print (coords)
Lat.append(point.y())
Long.append(point.x())
print(Lat)
print(Long)
layer = iface.activeLayer()
feats = [ feat for feat in layer.getFeatures() ]
# a reference to our map canvas
canvas = iface.mapCanvas()
# this QGIS tool emits as QgsPoint after each click on the map canvas
pointTool = QgsMapToolEmitPoint(canvas)
pointTool.canvasClicked.connect(display_point)
canvas.setMapTool(pointTool)
def Apoint():
root = QgsProject.instance().layerTreeRoot()
GRD = root.findGroup('2021')
print (GRD.name())
for x in range(1):
child0 = GRD.children()[x]
print(child0.name()[:8])
A=child0.name()[:8]
layers = QgsProject.instance().mapLayersByName('Activity')
layer = QgsVectorLayer(layers[0].dataProvider().dataSourceUri(), '', 'ogr')
caps = layer.dataProvider().capabilities()
if caps & QgsVectorDataProvider.AddFeatures:
feat = QgsFeature(layer.fields())
feat.setAttributes([5, A, 'CAMION'])
feat.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(Long[0], Lat[0])))
res, outFeats = layer.dataProvider().addFeatures([feat])
iface.mapCanvas().refresh()
iface.showAttributeTable(iface.activeLayer())
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339677#p339677
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : LAURENT
----------------------------------------
Bonjour à tous.
Mon but final est de pouvoir à partir d'un code Python (Je travaille directement dans la console python de QGIS pour l'instant). Dans en second temps je l’intégrerai dans un plugin. Le but est de créer un bouton qui me permettrait en un clic de créer un symbole avec des données de la table attributaire identique. Pour pouvoir créer une multitude de boutons par la suite aux paramètres différents.
J'ai développé en partie le code ci-dessous, avec lequel je souhaite en clic de souris pouvoir récupérer les coordonnées sous ma souris, créer un symbole a ces cordonnées, tout en remplissant la table attributaire avec toujours les mêmes paramètres.
Dans l’organisation de mes couches QGIS : J’ai intégré mes couches un groupe qui s’appelle 2021. La couche que je souhaite remplir s'appelle 'Activity'.
J'ai décomposé le code en différentes fonctions. C’est à dire que je récupéré bien mes cordonnées sur un clic souri, j'arrive à les stocker dans ma liste. Et et mais, dans un second temps je suis obligé de taper le nom de ma fonction c'est à dire Apoint() pour que le point soit créé comme je le souhaite.
J'ai essayé pleins de choses mais je n'arrive pas à enchainer les codes avec une seul action. En clic faire les deux choses en même temps.
J’ai bien essayé de tous mettre dans la même fonction mais ça ne fonctionne pas plus.
Rmq : J’ai intégré des print dans mon code c’est juste pour vérifier si le codes est correct.
Quelqu’un aurait il une idée pour ressoudre ce probléme.
Merci d’avance pour votre aide.
from qgis.gui import QgsMapToolEmitPoint
Lat=[]
Long=[]
def display_point(point, mouse_button):
coords = "Map Coordinates: {:.4f}, {:.4f}".format(point.x(), point.y())
print (coords)
Lat.append(point.y())
Long.append(point.x())
print(Lat)
print(Long)
layer = iface.activeLayer()
feats = [ feat for feat in layer.getFeatures() ]
# a reference to our map canvas
canvas = iface.mapCanvas()
# this QGIS tool emits as QgsPoint after each click on the map canvas
pointTool = QgsMapToolEmitPoint(canvas)
pointTool.canvasClicked.connect(display_point)
canvas.setMapTool(pointTool)
def Apoint():
root = QgsProject.instance().layerTreeRoot()
GRD = root.findGroup('2021')
print (GRD.name())
for x in range(1):
child0 = GRD.children()[x]
print(child0.name()[:8])
A=child0.name()[:8]
layers = QgsProject.instance().mapLayersByName('Activity')
layer = QgsVectorLayer(layers[0].dataProvider().dataSourceUri(), '', 'ogr')
caps = layer.dataProvider().capabilities()
if caps & QgsVectorDataProvider.AddFeatures:
feat = QgsFeature(layer.fields())
feat.setAttributes([5, A, 'CAMION'])
feat.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(Long[0], Lat[0])))
res, outFeats = layer.dataProvider().addFeatures([feat])
iface.mapCanvas().refresh()
iface.showAttributeTable(iface.activeLayer())
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339667#p339667
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : LADEUILLE
----------------------------------------
Merci JD pour votre réponse.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339666#p339666
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : labriki (mlabriki(a)gmail.com)
----------------------------------------
Bonjour,
Je cherche un code me permettant de d'appeler et de traiter un csv contenant des informations (coordonnées entre autres) en utilisant pyqgis dans la console des dernières versions de QGis. Le code que voici (trouvé dans le web) se heurte aux changements de python pour les dernières versions QGis:
-----------------
Code :
from qgis.core import *
from processing.tools.vector import VectorWriter
Input_Table = 'path_to_the_csv/input.csv' # set the filepath for the input CSV
lon_field = 'point_longitude' # set the name for the field containing the longitude
lat_field = 'point_latitude' # set the name for the field containing the latitude
crs = 4326 # set the crs as needed
Output_Layer = 'path_to_the_output/output.shp' # set the filepath for the output shapefile
spatRef = QgsCoordinateReferenceSystem(crs, QgsCoordinateReferenceSystem.EpsgCrsId)
inp_tab = QgsVectorLayer(Input_Table, 'Input_Table', 'ogr')
prov = inp_tab.dataProvider()
fields = inp_tab.pendingFields()
outLayer = QgsVectorFileWriter(Output_Layer, None, fields, QGis.WKBPoint, spatRef)
pt = QgsPoint()
outFeature = QgsFeature()
for feat in inp_tab.getFeatures():
attrs = feat.attributes()
pt.setX(float(feat[lon_field]))
pt.setY(float(feat[lat_field]))
outFeature.setAttributes(attrs)
outFeature.setGeometry(QgsGeometry.fromPoint(pt))
outLayer.addFeature(outFeature)
del outLayer
-----------------
Le code provient de l'adresse suivante:
https://howtoinqgis.wordpress.com/2017/04/24/how-to-convert-a-csv-file-to-a…
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339653#p339653
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : ODJAC33
----------------------------------------
Je vous remercie beaucoup, j'ai suivi votre conseil et ça fonctionne très bien (cf. résultats ci-joint avec un buffer de 5 miles).
----------------------------------------
Ce message est accompagné de fichiers, pour les télécharger, suivre le lien ci-dessous.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339651#p339651
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : m_ryc78
----------------------------------------
Bonjour la communauté,
Je cherche à effectuer un contrôle topologique entre 2 couches polygonales (zonage PLU au format CNIG et PCI vecteur) avec le logiciel QGis si possible (mais je ne suis pas contre l'utilisation d'un autre outil gratuit). J'ai bien noté la fonction "vérificateur de topologie" du logiciel mais je n'ai pas (ou plus) la possibilité de lui indiquer un seuil de tolérance (j'utilise la version 3.10.13)... Cette tolérance existait dans les précédentes versions mais lorsque j'essai de l'utiliser, les résultats qui en ressortent ne prennent pas en compte ce seuil de tolérance...
Je ne sais pas comment procéder pour le coup car il n'y a pas en plus d'affichage des surfaces concernées par un éventuel recouvrement d'objets (et qui me permettrait de vérifier la qualité de numérisation de mes PLU...).
Merci pour votre aide !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339639#p339639
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : Jean-Daniel Lomenède
----------------------------------------
Bonjour,
passer votre frontière par l'algorithme fusionner les lignes, je pense que le sens de direction de vos polylignes doivent être différent.
Et refaites des essais.
Si cela ne va mieux, postez déjà ce que vous avez essayé comme algorithme avec les paramétrage pour qu'on puisse vous aider plus facilement.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=339632#p339632
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net