Comment calculer le milieu d'une polyligne en utilisant le cadre de géotraitement , par exemple dans un script Python?
La propriété polyline.centroid renvoie le vrai centroïde s'il se trouve dans ou sur l'entité; sinon, le point d'étiquette est renvoyé . Le centroïde est rarement situé sur des lignes non droites, ce qui est inutile à mes fins.
L' outil Entités sommets vers points a une option au milieu, mais cela nécessite ArcInfo, que je n'ai pas actuellement.
Une option pourrait être d'ajouter des mesures aux polylignes et de créer un événement d'itinéraire 50% le long de la ligne.
Une autre solution consiste à utiliser l'option Calculer la géométrie dans ArcMap, mais idéalement, je dois automatiser ce processus dans un script.
Des suggestions meilleures / plus rapides?
Je suis limité à ArcGIS 10.0 (sans accès à une licence de niveau ArcInfo) pour le moment.
la source
Réponses:
La classe Polyline a une nouvelle méthode appelée "positionAlongLine" dans ArcGIS 10.1. Cela renverra un objet PointGeometry avec exactement un point à une distance spécifiée de l'extrémité de départ de la ligne, ou une fraction de la distance entre le début et la fin . Pour trouver le point médian, il vous suffit de le faire
positionAlongLine(0.5,True)
. Pour trouver les points médians des lignes et ajouter leurs coordonnées à la table attributaire, vous pouvez faire Field Calculator sur l'instruction suivante:!Shape!.positionAlongLine(0.5,True).firstPoint.X
!Shape!.positionAlongLine(0.5,True).firstPoint.Y
Notez que vous devez utiliser l'analyseur Python dans la calculatrice de champ pour que cela fonctionne.
Si vous vouliez accéder à cet objet point en Python, vous feriez simplement ce qui suit:
la source
Avec la licence ET Geo Wizards, vous pouvez essayer la fonction "Polyline to Point" avec l'option "Middle points" et "Remove Duplicate Points" (facultatif): http://www.ian-ko.com/ET_GeoWizards/UserGuide/convertPl2Pnt. htm
Vous pouvez implémenter ET Geo Wizards comme ceci:
Pour les variables d'entrée de la fonction ET, veuillez consulter: http://www.ian-ko.com/ET_GeoWizards/UserGuide/Scripting/scripting_PolylineToPoint.htm
la source