Lesezeichen in datengesteuerte Seiten in ArcGIS Desktop umwandeln?

9

Wir haben dieses große Projekt in ArcGIS mit 30 Karten mit unterschiedlichen Ausmaßen, die Lesezeichen verwenden, um zwischen diesen Karten / Seiten zu schwenken.

Jetzt möchten wir stattdessen datengesteuerte Seiten verwenden. Die Frage ist, ob es möglich ist, Lesezeichen in datengesteuerte Seiten umzuwandeln, oder müssen wir viele Polygone erstellen, die jede Kartenausdehnung abdecken.

oskarlin
quelle

Antworten:

7

Nicht direkt, aber Sie können dies mit Python und dem arcpy.mapping-Modul tun. Verwenden Sie arcpy.mapping.ListBookmarks , um den Umfang jedes Lesezeichens abzurufen . Erstellen Sie dann Features für jeden Bereich. Sie können diese Feature-Class jetzt als Indexschicht für datengesteuerte Seiten verwenden.

Jeff M.
quelle
Aus Gründen der Übersichtlichkeit ist ListBookmarks eine neue Funktion in ArcGIS 10.1
RyanKDalton,
OK, immer noch auf 10.0 hier ... Ich denke, wir werden bald aktualisieren. Außerdem kenne ich Python überhaupt nicht so gut.
oskarlin
Wenn Sie noch mit 10.0 arbeiten und mit ArcObjects und Python vertraut sind, können Sie mit ArcObjects, die mit comtypes importiert wurden, auf die Lesezeichen zugreifen. pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen
3

Sie scheinen weit davon entfernt zu sein, dies als Out-Of-The-Box-Funktionalität zu wollen. Es gibt mindestens drei ArcGIS-Ideen, zu denen Sie Ihren Namen hinzufügen sollten:

In der Zwischenzeit, wenn jemand inspiriert ist, ein Tool für BookMarks To Feature Class zu schreiben , ist seine Ausgabe sicher gut als Index-Feature-Class für datengesteuerte Seiten geeignet.

Am Ende habe ich dies als Schulungsübung durchgeführt, die stark auf Beispielcode basiert, der ArcGIS Online-Hilfe für 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
quelle
ListBookmarks ist in Version 10.2.1 fehlerhaft. ESRI hat heute einen Fall eröffnet: [# NIM099667 ListBookmarks (arcpy.mapping) Beispiel 3 (wie die Antwort von PolyGeo) aus der Hilfedokumentation funktioniert nicht richtig und erstellt eine leere Ausgabe in Version ArcMap 10.2.1. ]
MapGuyMike
2

Wir konnten eine Feature-Class erstellen, indem wir die Lesezeichen als .dat-Datei gespeichert und diese Datei dann in das Werkzeug " Meine Orte" geladen haben. Wählen Sie sie dann im Dialogfeld "Meine Orte" aus, klicken Sie auf die Schaltfläche " Hinzufügen zu" und wählen Sie " Als Grafik einmal zuordnen" Sie haben eine Grafik, wählen dann alle Grafiken in der Karte aus und verwenden die Option "Grafiken in Features konvertieren". Anschließend können Sie die Feature-Class für datengesteuerte Seiten verwenden. Hinweis: Die Grafiken wurden als Polygone angezeigt. Alle Kredite gehen an Seneca Francis.

Cary Jenkins
quelle