ブックマークをArcGIS Desktopのデータドリブンページに変換しますか?


9

ブックマークを使用してこれらのマップ/ページ間を移動する30のマップを持つこの大きなプロジェクトがArcGISにあります。

今度は、代わりにデータドリブンページを使用します。問題は、ブックマークをデータドリブンページに変換することは可能ですか、それとも各マップ範囲をカバーする多くのポリゴンを作成する必要があるのでしょうか。

回答:


7

直接ではありませんが、Pythonとarcpy.mappingモジュールでこれを行うことができます。各ブックマークの範囲を取得するには、arcpy.mapping.ListBookmarksを使用します。次に、各エクステントのフィーチャを作成します。これで、この機能クラスをデータドリブンページのインデックスレイヤーとして使用できるようになります。


わかりやすくするために、ListBookmarksはArcGIS 10.1の新機能です
RyanKDalton 2012

はい、まだ10.0のままです...すぐに更新されると思います。また、Pythonについてはそれほどよく知りません。
oskarlin 2012

まだ10.0を使用していて、ArcObjectsとPythonに精通している場合は、comtypeでインポートされたArcObjectsを使用してブックマークにアクセスできます。pierssen.com/arcgis/upload/misc/python_arcobjects.pdf
dklassen

3

すぐに使える機能としてこれを望んでいるのは、あなただけではありません。少なくとも3つのArcGISアイデアがあり、次の名前を追加することをお勧めします。

それまでの間、誰かがBookMarks To Feature Classツール書くように促された場合、その出力はデータドリブンページのインデックスフィーチャクラスとして適切に使用されると思います。

私はこれを、ListBookmarksのArcGISオンラインヘルプ(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)example 3(PolyGeoの回答と同様)が正しく機能せず、バージョンArcMap 10.2.1で空の出力が作成されます。]
MapGuyMike 2014年

2

私たちは、に、そのファイルをロードし、その後.datファイルとしてブックマークを保存することで、フィーチャクラスを作成することができました[お気に入り ]をクリックし、[お気に入り]ダイアログボックス内でそれらを選択し、ツールに追加するボタンをクリックし、選択した地図などのグラフィックをしたらグラフィックを作成してから、マップ内のすべてのグラフィックを選択し、[ グラフィックをフィーチャに変換]を使用して、データドリブンページのフィーチャクラスを使用できます。注:グラフィックはポリゴンとして取得されました。すべてのクレジットはセネカフランシスに寄付されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.