Suite

Dessiner un polygone avec l'interface graphique


Je cherche à créer un outil d'ajout en python pour ArcMap afin de dessiner un polygone. Finalement, je veux que l'outil calcule également la zone et un tas d'autres choses, mais pour l'instant, je serais heureux de simplement dessiner un polygone irrégulier en cliquant sur la souris pour chaque sommet et en double-cliquant pour fermer. Quelqu'un a-t-il un modèle de ce à quoi cela ressemblerait car je suis horrible en codage?

Le générique produit par l'assistant d'ajout donne ce qui suit :

class ToolClass3(object): """Implementation for Test Addin_addin.tool (Tool)""" def __init__(self): self.enabled = True self.shape = "NONE" # Peut être défini sur "Line", "Circle" ou "Rectangle" pour le dessin interactif de formes et pour activer les récepteurs d'événements en ligne/polygone/cercle. def onMouseDown(self, x, y, button, shift): passer def onMouseDownMap(self, x, y, button, shift): passer def onMouseUp(self, x, y, button, shift): passer def onMouseUpMap(self, x, y, button, shift): pass def onMouseMove(self, x, y, button, shift): pass def onMouseMoveMap(self, x, y, button, shift): pass def onDblClick(self): pass def onKeyDown( self, keycode, shift): pass def onKeyUp(self, keycode, shift): pass def deactivate(self): pass def onCircle(self, circle_geometry): pass def onLine(self, line_geometry): pass def onRectangle(self, rectangle_geometry) ): passer

Je peux penser à deux choses du haut de ma tête. Si vous souhaitez vous en tenir à un complément, vous pouvez utiliser leen ligneméthode et itérer simplement à travers la géométrie de la ligne que l'utilisateur crée et passe ces points dans un tableau et convertit cela en un polygone. Le peut ajouter des segments et des finitions en double-cliquant.

Ou, une autre option consiste à créer un outil de script. Avec un outil de script, vous avez la possibilité d'utiliser un FeatureSet comme entrée. L'utilisateur peut ainsi dessiner un polygone de manière interactive à partir de l'interface de l'outil.


Voir la vidéo: 01 Polygone (Octobre 2021).