Czy przekształcić zakładki w strony oparte na danych w ArcGIS Desktop?

9

Mamy duży projekt w ArcGIS z 30 mapami o różnych rozmiarach, wykorzystującymi Zakładki do przesuwania między tymi mapami / stronami.

Teraz chcielibyśmy zamiast tego korzystać ze stron opartych na danych. Pytanie brzmi: czy można przekonwertować zakładki na strony oparte na danych, czy też musimy stworzyć wiele wielokątów dla każdego zasięgu mapy?

oskarlin
źródło

Odpowiedzi:

7

Nie bezpośrednio, ale możesz to zrobić za pomocą Pythona i modułu arcpy.mapping. Użyj arcpy.mapping.ListBookmarks, aby uzyskać zasięg każdej zakładki. Następnie utwórz funkcje dla każdego zakresu. Teraz będziesz mógł używać tej klasy funkcji jako warstwy indeksu dla stron opartych na danych.

Jeff M.
źródło
Dla jasności ListBookmarks to nowa funkcja w ArcGIS 10.1
RyanKDalton,
OK, wciąż na 10.0 tutaj ... Myślę, że wkrótce zaktualizujemy. Poza tym nie znam tak dobrze Pythona.
oskarlin
Jeśli nadal korzystasz z wersji 10.0 i znasz ArcObjects i Python - możesz uzyskać dostęp do zakładek za pomocą ArcObjects zaimportowanych z typami. pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen
3

Wygląda na to, że nie jesteś sam, chcąc tego jako gotowej funkcjonalności. Istnieją co najmniej trzy Pomysły ArcGIS, do których polecam dodać swoje imię i nazwisko:

W międzyczasie, jeśli ktoś zainspiruje się do napisania narzędzia BookMarks To Feature Class , to jestem pewien, że jego dane wyjściowe będą dobrze wykorzystane jako Klasa Feature Index dla stron opartych na danych.

Skończyło się to na ćwiczeniu szkoleniowym opartym w dużej mierze na przykładowym kodzie pomocy online ArcGIS dla 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
źródło
ListBookmarks jest zepsuty w wersji 10.2.1. ESRI otworzył dzisiaj skrzynkę: [# NIM099667 ListBookmarks (arcpy.mapping) przykład 3 (podobnie jak odpowiedź PolyGeo) z Dokumentacji pomocy nie działa poprawnie i tworzy pusty wynik w wersji ArcMap 10.2.1. ]
MapGuyMike,
2

Udało nam się stworzyć klasę elementów zapisując się zakładki w pliku .dat następnie załaduj ten plik do Moje miejsca narzędzia, a następnie wybrać je w oknie dialogowym Moje miejsca, a następnie kliknij Dodaj do przycisku i wybrał map jako rysunek Raz masz grafikę, a następnie zaznacz całą grafikę na mapie i użyj Konwertuj grafikę na funkcje, a następnie możesz użyć klasy elementów dla stron opartych na danych. Uwaga: grafika pojawiła się jako wielokąty. Wszystkie zasługi należą się Seneca Francis.

Cary Jenkins
źródło