Mengubah penanda ke halaman yang digerakkan oleh data di ArcGIS Desktop?

9

Kami memiliki proyek besar ini di ArcGIS dengan 30 peta dengan luasan berbeda menggunakan Bookmark untuk menggeser di antara peta / halaman ini.

Sekarang kami ingin menggunakan halaman Data driven. Pertanyaannya adalah, apakah mungkin untuk mengkonversi bookmark ke halaman berbasis data atau apakah kita harus membuat banyak poligon yang mencakup setiap luas peta?

oskarlin
sumber

Jawaban:

7

Tidak secara langsung, tetapi Anda dapat melakukan ini dengan python dan modul arcpy.mapping. Gunakan arcpy.mapping.ListBookmarks untuk mendapatkan batas setiap bookmark. Kemudian buat fitur untuk setiap tingkat. Anda sekarang akan dapat menggunakan kelas fitur ini sebagai lapisan indeks untuk Data Driven Pages.

Jeff M
sumber
Hanya untuk kejelasan, ListBookmarks adalah fungsi baru di ArcGIS 10.1
RyanKDalton
OK, masih di 10.0 di sini ... Saya kira kami akan segera memperbarui. Saya juga tidak tahu Python sama sekali.
oskarlin
Jika Anda masih menggunakan 10.0 dan terbiasa dengan ArcObjects dan Python - Anda dapat mengakses bookmark menggunakan ArcObjects yang diimpor dengan comtypes. pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen
3

Anda tampaknya jauh dari sendirian dalam menginginkan ini sebagai fungsionalitas Out-Of-The-Box. Setidaknya ada tiga Ide ArcGIS yang saya sarankan Anda tambahkan nama Anda ke:

Sementara itu jika seseorang terinspirasi untuk menulis alat BookMarks To Feature Class , maka saya yakin hasilnya akan digunakan dengan baik sebagai Kelas Fitur Indeks untuk Halaman Berbasis Data.

Saya akhirnya melakukan ini sebagai latihan Pelatihan banyak didasarkan pada beberapa Kode Sampel Bantuan Online ArcGIS untuk 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
sumber
ListBookmarks rusak pada versi 10.2.1. ESRI membuka kasing hari ini: [# NIM099667 ListBookmarks (arcpy.mapping) contoh 3 (seperti jawaban PolyGeo) dari Dokumentasi Bantuan tidak berfungsi dengan benar & membuat output kosong di versi ArcMap 10.2.1. ]
MapGuyMike
2

Kami dapat membuat kelas fitur dengan menyimpan bookmark sebagai file .dat, lalu memuat file itu ke alat Tempatku , lalu memilihnya dalam kotak dialog Tempatku, lalu klik tombol Tambahkan Ke dan pilih Peta Sebagai Grafik Sekali Anda memiliki grafik lalu pilih semua grafik di dalam peta dan gunakan Convert Graphics to Features maka Anda dapat menggunakan Kelas Fitur untuk Halaman Berbasis Data. Catatan: Grafik ditampilkan sebagai poligon. Semua kredit diberikan kepada Seneca Francis.

Cary Jenkins
sumber