Español

Problema: Las entidades poligonales no aparecen al imprimir o exportar un marco de datos rotado

Descripción

Nota:
El contenido de este artículo pertenece únicamente a las versiones 8.x de ArcGIS. Es posible que versiones posteriores de ArcGIS incluyan funcionalidades distintas, así como nombres y ubicaciones distintos para menús, comandos y herramientas de geoprocesamiento.

Al imprimir o exportar un mapa en ArcMap con un marco de datos rotado, es posible que algunas entidades poligonales no aparezcan en la salida.

Causa

Se trata de un problema conocido en entidades de geometría compleja.

Solución o solución alternativa

Como alternativa, siga estos pasos para simplificar entidades complejas. Cree copias de seguridad de todos los datos antes de ejecutar muestras de código.

  1. Inicie ArcMap y cargue el MXD.
  2. Seleccione Comenzar la edición en la barra de herramientas Editor. Especifique un espacio de trabajo si se le solicita.
  3. Utilice la herramienta Seleccionar entidades para seleccionar todas las entidades contenidas en la capa de polígonos.
  4. Abra el Editor de Visual Basic.
     
    En ArcMap, seleccione Herramientas > Macros > Editor de Visual Basic.
  5. En la ventana Explorador del proyecto, expanda Project.mxt y seleccione Objetos de ArcMap > ThisDocument, haga clic con el botón derecho y seleccione Visualizar código.
[O-Image] Visual Basic Project  Explorer
 
Nota:
El código del módulo de código ThisDocument del proyecto solo se ejecutará en el documento de mapa actual. Si desea almacenar el código en todos sus documentos de mapa, abra en su lugar el módulo de código ThisDocument de Normal.mxt.
  1. Copie el siguiente código en el módulo de código.
Código:
Option Explicit

'********************************************************************
'Este sub simplifica todas las entidades seleccionadas en una
'clase de entidad concreta. Debe iniciar una sesión de edición antes de su uso.
'********************************************************************

Public Sub SimplifyFeature()
   Dim pID As New UID, pEditor As IEditor
   Dim pApp As IApplication, pTopoOp2 As ITopologicalOperator2
   Dim pEnumFeat As IEnumFeature, pFeature As IFeature
   Dim pGeometry As IGeometry
   pID = "esriCore.editor"
   Set pApp = Application
   Set pEditor = pApp.FindExtensionByCLSID(pID)
   If Not pEditor.SelectionCount > 0 Then
     MsgBox "Select one polygon"
     Exit Sub
 End If
   If pEditor.EditState = esriStateNotEditing Then
      MsgBox "Please start editing"
      Exit Sub
 End If
   pEditor.StartOperation
   Set pEnumFeat = pEditor.EditSelection
   Set pFeature = pEnumFeat.Next
   While Not pFeature Is Nothing
    If pFeature.Shape.GeometryType = esriGeometryPolygon Then
       Set pTopoOp2 = pFeature.ShapeCopy
       pTopoOp2.IsKnownSimple = False 'SET KNOWSIMPLE to False
       pTopoOp2.Simplify 'SIMPLIFY
       Set pFeature.Shape = pTopoOp2
       pFeature.Store
 End If
    Set pFeature = pEnumFeat.Next
   Wend
   pEditor.StopOperation "Simplify Features"
End Sub
  1. Cierre el Editor de Visual Basic.
  2. Ejecute el código.
    1. Haga clic en Herramientas > Macros > Macros para mostrar el cuadro de diálogo Macros.
    2. Seleccione una macro y haga clic en Ejecutar.
Ahora todos los polígonos aparecerán en la salida.