Message posté par : kili888
----------------------------------------
Bonjour,
Je souhaite créer des point dans des polygones. J'ai bien trouvé l'algorithme "point aléatoire dans une emprise" mais ce n'est pas tout à fait ce que je veux.
En effet je souhaite créer des point dans ma couche commune. Je dispose d'un champs chiffré. Je souhaite donc créer dans chaque commune le nombre de point correspondant de mon champs chiffré. Peut importe leurs localisation tant qu'il y ai bien le nombre de point créer correspondant au champ.
Du type
Champs Commune |Champs chiffré
Commune A | 1
Commune B | 5
Commune C | 2
Commune D | 4
Etc ...
Quelle méthode faut-il utiliser ?
Merci d'avance
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345098#p345098
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 : Pascal PLUVINET
----------------------------------------
Bonjour,
C'est bizarre, je pensais que le critère de proximité n'était pas suffisant pour créer une sectorisation et que les critères sociaux pouvaient compter beaucoup.
bref, si je comprends bien, c'est pluôt une méthode que vous cherchez avant de trouver l'outil adéquat. Je pense qu'il ne faudrait pas dans un premier temps affecter des adresses à l'école la plus proche mais plutôt des rues (ou morceau de rue entre deux intersections) à l'école la plus proche.
Une autre piste serait de ne pas prendre la distance à vol d'oiseau mais de prendre en compte le réseau routier et faire du plus court chemin.
Bonne continuation.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344743#p344743
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 : JC_
----------------------------------------
Bonjour,
Merci pour votre éclaircissement.
J'ai changé mon code par celui-là du coup mais il ne fonctionne toujours pas, le Z n'existe pas...
-----------------
Code :
layer = QgsVectorLayer('Point?crs=EPSG:4326', 'point', 'memory')
provider = layer.dataProvider()
provider.addAttributes([QgsField('Name', QVariant.String)])
provider.addAttributes([QgsField('ID', QVariant.Int)])
layer.updateFields()
f = QgsFeature()
f.setGeometry(QgsPoint(78.25, 14.25, 500))
f.setAttributes(['Lower Left',1])
provider.addFeature(f)
f.setGeometry(QgsPoint(78.25, 14.50, 400))
f.setAttributes(['Upper Left',2])
provider.addFeature(f)
f.setGeometry(QgsPoint(78.50, 14.50, 600))
f.setAttributes(['Upper Right',3])
provider.addFeature(f)
f.setGeometry(QgsPoint(78.50, 14.25, 400))
f.setAttributes(['Lower Right',4])
provider.addFeature(f)
layer.updateExtents()
QgsProject.instance().addMapLayer(layer)
QgsVectorFileWriter.writeAsVectorFormat(layer, "C:/Users/XXX/Desktop/Articles PEM/Graphiques/testpoint11.shp", "UTF-8", layer.crs(), "ESRI Shapefile")
path = "C:/Users/XXX/Desktop/Articles PEM/Graphiques"
layerfile = QgsVectorLayer(path, "test point", "ogr")
QgsProject.instance().addMapLayer(layerfile)
-----------------
Est-ce que j'ai bien fait ?
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345063#p345063
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
----------------------------------------
Ok, ca ne répond pas à mon problème car je ne peux pas joindre le champ géométrie de la table commune (de admin express) au tableur csv qui n'a pas de projection.
J'espère que ma demande est plus claire :)
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344965#p344965
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-Marie Arsac
----------------------------------------
Bonjour,
Il faut modifier la première ligne de votre code qui crée la couche pour lui indiquer que vous souhaitez stocker le z des points
-----------------
Code :
layer = QgsVectorLayer('Point z?crs=EPSG:4326', 'point', 'memory')
-----------------
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345068#p345068
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 : aheurion
----------------------------------------
Bonjour jmarsac,
Merci pour ton aide ! Effectivement, je précise pour ceux que ça intéresse, en activant la numérisation avancée, en rentrant les coordonnées voulues pour x et y puis en verrouillant ces coordonnées ("en continu") ça affiche sur le canevas l'emplacement qu'on veut et il n'y a plus qu'à zoomer dessus suffisamment pour placer le point avec le maximum de précision.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345066#p345066
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 : Carlote29 (carlotee9(a)gmail.com)
----------------------------------------
Bonjour à tous,
Je fais appel à vos savoirs en matière de MEP carte.
Je cherche à automatiser les MEP pour créer un modèle de composeur d'impression pour diffusion dans mon entreprise. Mais il me reste un point noir : je souhaiterais que mon cartouche de légende garde une largeur fixe, mais une longueur variable, soit adaptée en fonction des items présents sur ma carte.
J'ai trouvé l'outil "ajuster au contenu" mais la largeur bouge : or, je voudrais que toutes les cartes créées par n'importe qui dans la boite respectent cette harmonie de MEP... et je n'ai pas envie de faire faire des bidouilles aux collègues pour obtenir ce résultat, certains sont novices, voire très novice en SIG.
Est-ce-que l'un de vous aurait une solution ?
En espérant avoir été la plus claire possible, et merci d'avance pour vos retours !
Bonne journée à tous. Charlotte
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=344993#p344993
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 : JC_
----------------------------------------
Bonjour,
Je cherche à créer des points avec une valeur Z avec Pygis. Débutant complet en Python, j'ai trouvé un script qui me créer 4 points mais seulement en coordonnées (x,y), alors que je voudrais ajouter un Z également.
-----------------
Code :
layer = QgsVectorLayer('Point?crs=EPSG:4326', 'point', 'memory')
provider = layer.dataProvider()
provider.addAttributes([QgsField('Name', QVariant.String)])
provider.addAttributes([QgsField('ID', QVariant.Int)])
layer.updateFields()
f = QgsFeature()
p1 = QgsPointXY(78.25, 14.25)
p2 = QgsPointXY(78.25, 14.50)
p3 = QgsPointXY(78.50, 14.50)
p4 = QgsPointXY(78.50, 14.25)
f.setGeometry(QgsGeometry.fromPointXY(p1))
f.setAttributes(['Lower Left',1])
provider.addFeature(f)
f.setGeometry(QgsGeometry.fromPointXY(p2))
f.setAttributes(['Upper Left',2])
provider.addFeature(f)
f.setGeometry(QgsGeometry.fromPointXY(p3))
f.setAttributes(['Upper Right',3])
provider.addFeature(f)
f.setGeometry(QgsGeometry.fromPointXY(p4))
f.setAttributes(['Lower Right',4])
provider.addFeature(f)
layer.updateExtents()
QgsProject.instance().addMapLayer(layer)
QgsVectorFileWriter.writeAsVectorFormat(layer, "C:/Users/XXX/Desktop/Articles PEM/Graphiques/testpoint11.shp", "UTF-8", layer.crs(), "ESRI Shapefile")
path = "C:/XXX/XXX/Desktop/Articles PEM/Graphiques"
layerfile = QgsVectorLayer(path, "test point", "ogr")
QgsProject.instance().addMapLayer(layerfile)
-----------------
J'ai partiellement trouvé un élément de réponse ici : https://gis.stackexchange.com/questions/250397/creating-3d-points-in-pyqgis mais je suis bien trop débutant pour adapter mon code, rien ne fonctionne.
Quelqu'un a t-il déjà été confronté au problème ? Une adaptation est-elle possible ?
Merci !
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345053#p345053
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 : SANTANNA
----------------------------------------
Bonjour,
Je n'ai pas tout compris, mais pour créer une ligne XYZ variable, vous pouvez utiliser l'éditeur de noeuds. Une fois la ligne créée avec le Z unique, vous cliquez sur un noeud, obtenez le panneau "Editeur de noeuds" et modifiez les z. Voir la doc (https://docs.qgis.org/3.16/fr/docs/user_manual/working_with_vector/editing_…) .
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345034#p345034
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 : Demonshine
----------------------------------------
Bonjour,
J'ai réalisé un script Python qui permet de numéroter les polygones d'une couche en fonction d'un ordre précis. Cependant, j'aimerais que la numérotation se fasse en fonction des noms de mes polygones. C'est-à-dire pour un polygone nommé "XX", exécuter mon script pour me numéroter tous les polygones appelés "XX" de 1 à n et pour un polygone nommé "YY" et présent dans la même table, réitérer l'opération en réinitialisant la numérotation de 1 à n pour tous les polygones nommés "YY" et donc indépendamment des polygones qui ne portent pas le même nom. J'ai un champ "nom" dans la table qui regroupe tous mes polygones me permettant de les différencier.
Voici mon script qui marche avec une numérotation sur toute ma table sans prendre en compte les noms des polygones :
-----------------
Code :
from qgis.utils import iface
from PyQt5.QtCore import QVariant
layer = iface.activeLayer()
idfield = 'num_page'
coords = [[round(f.geometry().centroid().asPoint().x(),0),round(f.geometry().centroid().asPoint().y(),0),f.id()]]
coords.sort(key=lambda k: (k[1],-k[0]), reverse=True)
order = [i[2] for i in coords]
i = layer.fields().indexFromName(idfield)
attrMap = {id: {i:e} for e,id in enumerate(order,1)}
layer.dataProvider().changeAttributeValues(attrMap)
-----------------
Pour faire ce script en fonction du champ "nom" de ma table, j'ai essayé d'utiliser la fonction for f in layer.getFeature() mais cela ne marche pas.
Auriez-vous une solution s'il-vous-plaît ?
Merci d'avance pour votre aide,
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=345042#p345042
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