¿Transformar marcadores en páginas controladas por datos en ArcGIS Desktop?

9

Tenemos este gran proyecto en ArcGIS con 30 mapas con diferentes extensiones usando marcadores para desplazarse entre estos mapas / páginas.

Ahora nos gustaría usar páginas controladas por datos. La pregunta es, ¿es posible convertir marcadores a páginas basadas en datos o tenemos que crear muchos polígonos que cubran cada extensión del mapa?

oskarlin
fuente

Respuestas:

7

No directamente, pero puede hacerlo con python y el módulo arcpy.mapping. Use arcpy.mapping.ListBookmarks para obtener la extensión de cada marcador. Luego cree características para cada extensión. Ahora podrá usar esta clase de entidad como la capa de índice para las páginas controladas por datos.

Jeff M
fuente
Solo por claridad, ListBookmarks es una nueva función en ArcGIS 10.1
RyanKDalton
OK, todavía en 10.0 aquí ... Supongo que actualizaremos pronto. Además, no conozco Python tan bien en absoluto.
oskarlin
Si todavía está en 10.0 y está familiarizado con ArcObjects y Python, puede acceder a los marcadores utilizando ArcObjects importados con comtypes. pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen
3

Parece que estás lejos de estar solo en querer esto como una funcionalidad lista para usar. Hay al menos tres ideas de ArcGIS a las que le recomendaría que agregue su nombre:

Mientras tanto, si alguien se inspira para escribir una herramienta BookMarks To Feature Class , entonces estoy seguro de que su salida se usará bien como una Clase de entidad de índice para páginas controladas por datos.

Terminé haciendo esto como un ejercicio de capacitación basado en gran medida en un código de muestra de la Ayuda en línea de ArcGIS para ListBookmarks (arcpy.mapping).

import arcpy

# The map with the bookmarks
mxd = arcpy.mapping.MapDocument(r"C:\polygeo\Maps\Bookmarks.mxd")

# Make sure that Training.gdb exists
fileGDBFolder = (r"C:\polygeo")
fileGDBName = ("Training.gdb")
fileGDB = fileGDBFolder + "\\" + fileGDBName
if not arcpy.Exists(fileGDB):
    arcpy.CreateFileGDB_management(fileGDBFolder, fileGDBName)

# The output feature class to be created -
# This feature class will store the bookmarks as features
fcName = "Bookmarks"
outFC = fileGDB + "\\" + fcName

# Create new feature class and add a "Name" field to store the
# bookmark name.  Provide it with the same Spatial reference as
# the data frame in which the bookmarks of the map are stored

if arcpy.Exists(outFC):
    arcpy.Delete_management(outFC)   
arcpy.CreateFeatureclass_management(fileGDB,
                                    fcName, 
                                    "POLYGON", 
                                    spatial_reference=arcpy.SpatialReference(
                                        "Geocentric Datum of Australia 1994"))
arcpy.AddField_management(outFC, "Name", "TEXT", "", "", 50)

# Use arcpy.mapping.ListBookmarks to read bookmark corners and names,
# then arcpy.da.InsertCursor to write arrays of Point geometries from
# that can be written as Polygon geometries to the Shape field of the
# new feature class (with their names).
cur = arcpy.da.InsertCursor(outFC, ["SHAPE@", "Name"])
array = arcpy.Array()
for bkmk in arcpy.mapping.ListBookmarks(mxd):
    array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMin))
    array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMax))
    array.add(arcpy.Point(bkmk.extent.XMax, bkmk.extent.YMax))
    array.add(arcpy.Point(bkmk.extent.XMax, bkmk.extent.YMin))
    # To close the polygon, add the first point again
    array.add(arcpy.Point(bkmk.extent.XMin, bkmk.extent.YMin))
    cur.insertRow([arcpy.Polygon(array), bkmk.name])
    array.removeAll()
del bkmk,array,cur,mxd

print "Bookmarks feature class has been created in " + fileGDB
PolyGeo
fuente
ListBookmarks está roto en la versión 10.2.1. ESRI abrió un caso hoy: [# NIM099667 Ejemplo 3 de ListBookmarks (arcpy.mapping) (como la respuesta de PolyGeo) de la documentación de ayuda no funciona correctamente y crea una salida vacía en la versión ArcMap 10.2.1. ]
MapGuyMike
2

Pudimos crear una clase de entidad al guardar los marcadores como un archivo .dat, luego cargar ese archivo en la herramienta Mis lugares , luego seleccionarlos dentro del cuadro de diálogo Mis lugares, luego hacer clic en el botón Agregar a y elegir Mapear como gráfico una vez tiene un gráfico, luego seleccione todos los gráficos dentro del mapa y use Convertir gráficos en entidades, luego puede usar la Clase de entidad para páginas controladas por datos. Nota: los gráficos aparecieron como polígonos. Todo el crédito va a Séneca Francis.

Cary Jenkins
fuente