J'ai des coordonnées x, y en lat / long et je dois créer des cellules carrées de 5x5 degrés autour d'eux, les coordonnées lat / long étant les centroïdes.
Ma première option est de créer un tampon autour des centroïdes avec 1 segment et une distance de 1/2 (5 °) * sqrt (2) (doit multiplier par sqrt (2) bc l'outil utilise le centroïde au coin du carré comme la distance tampon, par opposition au centre de gravité au bord), ce qui se traduit par des carrés latéraux autour de mes points, puis fait pivoter chaque entité de 45 degrés. Je préfère ne pas le faire car la distance n'est pas aussi précise et je ne sais pas comment faire tourner rapidement chaque fonction de tampon individuelle.
Ma deuxième option, qui semble beaucoup plus simple, consiste à créer un tampon autour des centroïdes avec la distance dont j'ai besoin ((1/2) * 5 °), puis à utiliser quelque chose comme l'outil Feature to Envelope d'ArcMap.
Je vois que quelqu'un a la même question ici et une réponse a été fournie, mais je ne sais pas comment le faire par programme.
QgsMapLayerRegistry
à la dernière ligne parQgsProject
. Pour plus d'informations, voir ceciQGIS 3 fournit une alternative rapide et sale: - Vector -> Outils de géotraitement -> Buffer
Sélectionnez votre calque de point comme calque d'entrée, assurez-vous que le style de capuchon d'extrémité est défini sur carré et que la distance doit être la moitié de la longueur du carré prévue (donc un carré de 1 km par côté doit avoir une distance de 500 m).
la source
Pour transformer des points en carrés, vous pouvez essayer de
native:buffer
traiter l'algorithme avec leEND_CAP_STYLE
paramètre défini sur2
(carré).Attention! Les résultats peuvent varier et dépendent du système de coordonnées de la couche d'entrée. Dans exapmle, si vous utilisez WGS 84 et que vous définissez une distance,
5000
cela entraînera une ligne carrée de 5000 degrés (et non mètres).Testé avec pyQGIS 3.6.1:
Exemple d'utilisation:
la source