Trasformare i segnalibri in pagine basate sui dati in ArcGIS Desktop?


9

Abbiamo questo grande progetto in ArcGIS con 30 mappe con diverse estensioni usando i segnalibri per spostarti tra queste mappe / pagine.

Ora vorremmo utilizzare invece le pagine basate sui dati. La domanda è: è possibile convertire i segnalibri in pagine guidate dai dati o dobbiamo creare molti poligoni che coprono ogni estensione della mappa?

Risposte:


7

Non direttamente, ma puoi farlo con python e il modulo arcpy.mapping. Utilizzare arcpy.mapping.ListBookmarks per ottenere l'estensione di ciascun segnalibro. Quindi creare funzionalità per ogni estensione. Ora sarai in grado di utilizzare questa classe di funzionalità come livello di indice per le pagine basate sui dati.


Per chiarezza, ListBookmarks è una nuova funzione di ArcGIS 10.1
RyanKDalton,

OK, ancora su 10.0 qui ... Immagino che aggiorneremo presto. Inoltre non conosco affatto Python.
Oskarlin,

Se sei ancora su 10.0 e hai familiarità con ArcObjects e Python, puoi accedere ai segnalibri usando ArcObjects importato con comtypes. pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen

3

Sembra che tu sia tutt'altro che solo nel volerlo come funzionalità Out-Of-The-Box. Esistono almeno tre idee ArcGIS che consiglierei di aggiungere il tuo nome a:

Nel frattempo, se qualcuno è ispirato a scrivere uno strumento BookMarks To Feature Class , allora sono sicuro che il suo output sarebbe ben usato come una classe di caratteristiche di indice per le pagine basate sui dati.

Ho finito per fare questo come un esercizio di allenamento basato pesantemente su alcuni esempi di codice della Guida in linea di ArcGIS per 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

ListBookmarks è rotto alla versione 10.2.1. ESRI ha aperto oggi un caso: [# NIM099667 ListBookmarks (arcpy.mapping) esempio 3 (come la risposta di PolyGeo) dalla documentazione della guida non funziona correttamente e crea un output vuoto nella versione ArcMap 10.2.1. ]
MapGuyMike

2

Siamo stati in grado di creare una classe di funzionalità salvando i segnalibri come file .dat quindi caricando quel file nello strumento I miei luoghi , quindi selezionandoli nella finestra di dialogo I miei luoghi, quindi facendo clic sul pulsante Aggiungi a e scegliendo Mappa come grafica una volta si dispone di un elemento grafico quindi selezionare tutti gli elementi grafici all'interno della mappa e utilizzare Converti grafica in funzionalità, quindi è possibile utilizzare la classe di funzionalità per le pagine guidate dai dati. Nota: la Grafica è arrivata come poligoni. Tutto il merito va a Seneca Francis.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.