แปลงบุ๊กมาร์กเป็นหน้าที่ขับเคลื่อนด้วยข้อมูลใน ArcGIS Desktop หรือไม่


9

เรามีโครงการขนาดใหญ่นี้ใน ArcGIS ที่มี 30 แผนที่พร้อมขอบเขตที่แตกต่างกันโดยใช้ที่คั่นหน้าเพื่อเลื่อนระหว่างแผนที่ / หน้าเหล่านี้

ตอนนี้เราต้องการใช้เพจที่ขับเคลื่อนด้วยข้อมูลแทน คำถามคือเป็นไปได้หรือไม่ที่จะแปลงบุ๊กมาร์กเป็นหน้าข้อมูลที่ขับเคลื่อนด้วยหรือเราต้องสร้างรูปหลายเหลี่ยมจำนวนมากที่ครอบคลุมแต่ละแผนที่

คำตอบ:


7

ไม่ได้โดยตรง แต่คุณสามารถทำได้ด้วย python และโมดูล arcpy.mapping ใช้arcpy.mapping.ListBookmarksเพื่อให้ได้ขอบเขตของแต่ละบุ๊คมาร์ค จากนั้นสร้างคุณสมบัติสำหรับแต่ละส่วน ตอนนี้คุณจะสามารถใช้คลาสคุณลักษณะนี้เป็นเลเยอร์ดัชนีสำหรับ Data Driven Pages


เพื่อความชัดเจน ListBookmarks เป็นฟังก์ชันใหม่ใน ArcGIS 10.1
RyanKDalton

ตกลงยังอยู่ที่ 10.0 ที่นี่ ... ฉันเดาว่าเราจะอัปเดตในไม่ช้า นอกจากนี้ฉันไม่รู้จัก Python ที่ดีเลย
oskarlin

หากคุณยังอยู่ที่ 10.0 และคุ้นเคยกับ ArcObjects และ Python คุณสามารถเข้าถึงบุ๊คมาร์คได้โดยใช้ ArcObjects ที่นำเข้าด้วย comtypes pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen

3

คุณดูเหมือนจะอยู่ห่างไกลจากคนเดียวในการต้องการสิ่งนี้เป็นฟังก์ชั่น Out-Of-The-Box อย่างน้อยสามแนวคิดของ ArcGIS ที่ฉันอยากจะแนะนำให้คุณเพิ่มชื่อของคุณคือ:

ในระหว่างนี้หากมีใครบางคนได้รับแรงบันดาลใจให้เขียนเครื่องมือBookMarks to Feature Classแล้วฉันมั่นใจว่าผลลัพธ์นั้นจะถูกใช้เป็นคลาสฟีเจอร์ดัชนีสำหรับเพจที่ขับเคลื่อนด้วยข้อมูล

ฉันลงเอยด้วยการทำแบบฝึกหัดการฝึกอบรมโดยยึดตามรหัสตัวอย่างบางส่วนว่า ArcGIS Online Help สำหรับ 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 เสียที่รุ่น 10.2.1 ESRI เปิดเคสในวันนี้: [# NIM099667 ListBookmarks (arcpy.mapping) ตัวอย่าง 3 (เช่นคำตอบของ PolyGeo) จาก Help Documentation ทำงานไม่ถูกต้อง & สร้างเอาต์พุตว่างที่เวอร์ชัน ArcMap 10.2.1 ]
MapGuyMike

2

เราสามารถสร้างคลาสคุณลักษณะโดยการบันทึกบุ๊กมาร์กเป็นไฟล์. dat แล้วโหลดไฟล์นั้นลงในเครื่องมือMy Placesจากนั้นเลือกพวกมันภายในกล่องโต้ตอบ My Places จากนั้นคลิกที่ปุ่มAdd ToและเลือกMap As Graphicหนึ่งครั้ง คุณมีกราฟิกจากนั้นเลือกกราฟิกทั้งหมดภายในแผนที่และใช้แปลงกราฟิกเป็นคุณสมบัติจากนั้นคุณสามารถใช้คลาสคุณลักษณะสำหรับเพจที่ขับเคลื่อนด้วยข้อมูล หมายเหตุ: กราฟิกเข้ามาเป็นรูปหลายเหลี่ยม เครดิตทั้งหมดไปที่ Seneca Francis

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.