Comment obtenir l'enveloppe de toutes les entités d'une classe d'entités dans ArcMap?

10

Je souhaite obtenir une seule enveloppe de toutes les fonctionnalités d'une classe d'entités. Existe-t-il un moyen de le faire dans ArcMap?

steenhulthin
la source
1
En lisant les réponses, je me rends compte que ma question n'était pas assez précise. Je cherchais un outil pour trouver l'enveloppe dans l'interface graphique d'ArcMap. La réponse de Swingley accomplit exactement cela en une seule étape. Cependant, j'utilise ArcMap 9.3.1, qui n'a pas cet outil, mais la réponse de gkh accomplit cela en deux étapes dans ArcMap 9.3.1 (9.x je suppose). Les réponses de Swingley et de gkh nécessitent une licence INFO. Je n'ai pas précisé cela non plus, mais dans mon cas, ça va.
steenhulthin

Réponses:

6

Découvrez l' outil Géométrie de contour minimum . Spécifiez "TOUS" pour l'option de groupe pour obtenir une seule entité représentant l'enveloppe de vos entités.

Derek Swingley
la source
5

FeatureClass prend en charge l'interface IGeoDataset, qui possède une propriété Extent contenant l'IEnvelope utilisée par toutes les fonctionnalités

cheers brian

bFlood
la source
1
Salut Brian - Avec 10.0, je vois un comportement étrange avec Zoom to Layer (il fait un zoom arrière trop grand). Je pense que Zoom sur la couche utilise IGeoDataset.Extent, mais je n'en suis pas sûr. Le problème se produit après avoir ajouté des fonctionnalités par programme à un fichier de formes vide. J'ai résolu le problème en appelant IFeatureClassManage.UpdateExtent après avoir ajouté des fonctionnalités.
Kirk Kuykendall
hey kirk - Je ne peux pas dire avec certitude ce qui se passe, mais je suppose qu'il pourrait utiliser toute l'étendue de la référence spatiale jusqu'à ce qu'elle ait une géométrie. ou peut-être qu'ils ont fait de l'appel UpdateExtent (ou son équivalent fonctionnel) un processus manuel (pour des raisons de performance ??) qui sait, 10.0 est rempli de bugs. grande fonctionnalité mais beaucoup de problèmes ...
bFlood
2

Si vous souhaitez utiliser le module Python arcgisscripting en 9.3x:

import arcgisscripting

gp = arcgisscripting.create(9.3)

fc = "C:/workshop/exercises/exercise1/data/stlouis_cities_geog.shp"

fcDesc = gp.describe(fc)

shpExtent = fcDesc.extent
print("Bounding Box: " + str(shpExtent.XMin) + "," + str(shpExtent.YMin) + "," +  str(shpExtent.XMax) + "," + str(shpExtent.YMax))

del fc, gp
DavidF
la source
1

À la version 9.3, vous pouvez utiliser l'outil Enveloppe de fonction vers polygone. Vous devrez peut-être dissoudre la sortie dans une fonction en plusieurs parties, puis réexécuter l'outil Enveloppe.

gkh
la source
0

Un hack grossier: dans vos propriétés de trame de données, onglet Trame de données, commande Étendue utilisée par l'étendue complète - Allez à Autre | Spécifier l'étendue, sélectionnez Aperçu des fonctionnalités et le FC d'intérêt. OK dans toutes les boîtes de dialogue, revenez à Spécifier l'étendue et l'étendue de votre FC devrait maintenant être celle qui est affichée dans les champs supérieur, droit, inférieur et gauche de l'étendue personnalisée. Nous le faisons pour définir l'étendue complète personnalisée dans les services de carte ArcGIS Server, mais cela devrait vous donner l'étendue de la FC souhaitée.

Chad Cooper
la source