Transformar favoritos em páginas controladas por dados no ArcGIS Desktop?

9

Temos este grande projeto no ArcGIS com 30 mapas com extensões diferentes usando Favoritos para percorrer esses mapas / páginas.

Agora, gostaríamos de usar páginas controladas por dados. A questão é: é possível converter marcadores em páginas controladas por dados ou precisamos criar muitos polígonos cobrindo cada extensão do mapa?

oskarlin
fonte

Respostas:

7

Não diretamente, mas você pode fazer isso com python e o módulo arcpy.mapping. Use arcpy.mapping.ListBookmarks para obter a extensão de cada marcador. Em seguida, crie recursos para cada extensão. Agora você poderá usar esta classe de recurso como a camada de índice para páginas controladas por dados.

Jeff M
fonte
Apenas para maior clareza, ListBookmarks é uma nova função no ArcGIS 10.1
RyanKDalton
OK, ainda no 10.0 aqui ... Acho que vamos atualizar em breve. Também não conheço Python tão bem assim.
oskarlin
Se você ainda está na versão 10.0 e conhece o ArcObjects e o Python - é possível acessar os favoritos usando o ArcObjects importados com tipos. pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen
3

Você parece estar longe de querer isso como funcionalidade pronta para uso. Há pelo menos três idéias do ArcGIS que eu recomendaria que você adicionasse seu nome:

Enquanto isso, se alguém for inspirado a escrever uma ferramenta BookMarks To Feature Class , tenho certeza de que sua saída seria bem usada como uma classe de recurso de índice para páginas controladas por dados.

Acabei fazendo isso como um exercício de treinamento baseado em alguns códigos de amostra da Ajuda on-line do ArcGIS para 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
fonte
O ListBookmarks está quebrado na versão 10.2.1. A ESRI abriu um caso hoje: [# NIM099667 ListBookmarks (arcpy.mapping) exemplo 3 (como a resposta da PolyGeo) da documentação da Ajuda não funciona corretamente e cria uma saída vazia na versão ArcMap 10.2.1. ]
MapGuyMike
2

Conseguimos criar uma classe de recurso salvando os marcadores como um arquivo .dat, depois carregue esse arquivo na ferramenta Meus locais , selecione-os na caixa de diálogo Meus locais, clique no botão Adicionar a e escolha Mapear como gráfico uma vez você possui um gráfico e, em seguida, seleciona todos os gráficos no mapa e usa a opção Converter gráficos em recursos . É possível usar a classe de recurso para páginas controladas por dados. Nota: os gráficos apareceram como polígonos. Todo o crédito é para Seneca Francis.

Cary Jenkins
fonte