Zusammenfassung
Konvertiert Beschriftungen für Layer in einer Karte auf der Grundlage eines Polygon-Index-Layers in Annotationen.
Das Werkzeug unterteilt eine Karte in Kacheln und erstellt dann für jede Kachel Annotationen. Dies ist beim Konvertieren einer großen Anzahl von Beschriftungen in Annotationen nützlich. Der Polygon-Index-Layer kann mit dem Werkzeug Kachelschema des Kartenserver-Cache in Polygone oder Indexgitter-Features generiert werden oder es kann sich um eine beliebige andere Polygon-Feature-Class handeln, die den Bereich für die zu erstellenden Annotationen umfasst.
Verwendung
Beschriftungen können für einen einzelnen Layer oder die gesamte Karte in eine Annotation konvertiert werden. Findet die Konvertierung für einen einzelnen Layer statt, muss er angegeben werden und sich in der Karte befinden.
Die Maßstabsbereiche der Beschriftungsklassen werden berücksichtigt. Wenn das Werkzeug Annotationen für einen bestimmten Bezugsmaßstab generiert, konvertiert es nur die Beschriftungsklassen, die aktiviert und bei diesem Maßstab sichtbar sind.
Hinweis:
Maßstabsbereiche für Beschriftungsklassen werden in ArcGIS Pro in den Eigenschaften des Layers festgelegt. Konfigurieren Sie die Beschriftungseigenschaften, und speichern Sie das Projekt, bevor Sie dieses Werkzeug ausführen.
Wenn Sie vor dem Ausführen des Werkzeugs Kacheln auswählen, werden nur für die ausgewählten Kacheln Annotationen erstellt.
Wenn nur die Annotationen für einige Kacheln im Polygon-Index-Layer aktualisiert werden sollen, wählen Sie zuerst die Annotation-Features mit genau diesem "TileID"-Wert aus, und löschen Sie sie. Wählen Sie dann die Polygon-Features aus, und führen Sie das Werkzeug erneut aus.
Eine der Ausgaben dieses Werkzeugs ist eine Reihe von Gruppen-Layern. Einer der Gruppen-Layer enthält einen Gruppen-Layer für jeden Bezugsmaßstab, für den Annotationen erstellt wurden.
-
Im Bereich "Katalog" oder in ModelBuilder können Sie den Ausgabe-Gruppen-Layer mit dem Werkzeug In Layer-Datei speichern in einer Layer-Datei speichern.
Ein vorhandener Gruppen-Layer wird überschrieben, wenn Sie denselben Layer-Namen angeben und das Überschreiben von Ausgaben ausdrücklich zulassen.
Wenn in der Karte doppelte Feature-Class-Namen gefunden werden, wird der Annotation nach dem Feature-Class-Namen eine Zahl angefügt (z. B. "Cities01Anno10000", "Cities02Anno10000" usw.).
Annotation-Feature-Classes werden nicht überschrieben, wenn ein bereits vorhandener Suffix angegeben wird. In diesem Fall wird dem Suffix für die Annotation-Feature-Class eine Zahl hinzugefügt (z. B. "CitiesAnno10000", "CitiesAnno10000_1" usw.).
Der Bezugsmaßstab für die Annotation-Feature-Classes kann auf die nachfolgenden zwei Arten angegeben werden:
- Die erste Option besteht darin, den Bezugsmaßstab der Ausgabe-Annotation-Feature-Classes anhand eines Feldes des Polygon-Index-Layers zu ermitteln. Verwenden Sie diese Option, wenn Sie Annotationen für eine Vielzahl von Maßstabsebenen erstellen.
- Die zweite Option besteht in der expliziten Angabe eines Bezugsmaßstabs. Dieser Bezugsmaßstab wird für alle Annotation-Feature-Classes verwendet. Wenn in der Karte ein Bezugsmaßstab festgelegt wird, ist dies der Standardwert für das Werkzeug. Wenn kein Bezugsmaßstab in der Karte festgelegt ist, wird der aktuelle Maßstab als Standardwert angegeben.
Wenn Sie einen Polygonindex-Layer verwenden, der vom Werkzeug Kachelschema des Kartenserver-Cache in Polygone erstellt wurde, verwenden Sie das Feld Tile_Scale als Bezugsmaßstabsfeld-Parameter. Für jede Kombination aus Layer und "Tile_Scale" wird eine neue Annotation-Feature-Class erstellt.
Erzeugen Sie Annotationen für eine Vielzahl von Bezugsmaßstäben, konzipieren Sie die Karte für jeden dieser Maßstäbe, und legen Sie keinen Bezugsmaßstab fest.
Wird ein Koordinatensystemfeld aus dem Polygon-Index-Layer angegeben, wird die Annotation für jede Kachel zum Zweck der Darstellung und Platzierung in dieses Koordinatensystem projiziert.
Ist der Parameter Feature-bezogene Annotationen erstellen nicht aktiviert, kann der Parameter Beschriftungen aller Layer in eine einzige Ausgabe-Feature-Class konvertieren zum Erstellen einer Annotation-Feature-Class für die gesamte Karte verwendet werden.
Beim Erstellen einer Annotation-Feature-Class für die gesamte Karte können Beschriftungsklassen mit ähnlichen Eigenschaften über die Funktion Ähnliche Beschriftungsklassen zusammenführen zu einer Annotationsklasse zusammengeführt werden.
Feature-bezogene Annotationen werden einem spezifischen Feature in einer anderen Feature-Class der Geodatabase zugeordnet. Wenn Sie die Option ausgewählt haben, wird ferner automatisch eine Beziehungsklasse generiert, wenn Sie die Ausgabe-Annotation-Feature-Class erstellen.
Wenn Sie Feature-bezogene Annotationen erstellen, muss der Ausgabe-Workspace derselbe wie der mit diesen verknüpften Feature-Classes sein.
Möglicherweise werden einige Beschriftungen momentan nicht auf der Karte angezeigt, da kein Platz für sie vorhanden ist. Um diese Beschriftungen zu konvertieren, aktivieren Sie das Kontrollkästchen Nicht platzierte Annotation erstellen. Dadurch werden die nicht platzierten Beschriftungen in der Annotation-Feature-Class gespeichert, sodass Sie diese später in einer Editiersitzung positionieren können.
Die Workspaces "in_memory" und "memory" unterstützen keine Feature-bezogenen Annotationen.
Syntax
arcpy.cartography.TiledLabelsToAnnotation(input_map, polygon_index_layer, out_geodatabase, out_layer, anno_suffix, {reference_scale_value}, {reference_scale_field}, {tile_id_field}, {coordinate_sys_field}, {map_rotation_field}, {feature_linked}, {generate_unplaced_annotation}, {which_layers}, {single_layer}, {require_symbol_id}, {auto_create}, {update_on_shape_change}, {multiple_feature_classes}, {merge_label_classes})
Parameter | Erklärung | Datentyp |
input_map | Die Karte mit den Beschriftungen, die in Annotationen konvertiert werden sollen. | Map |
polygon_index_layer | Der Polygon-Layer, der Kachel-Features enthält. | Table View |
out_geodatabase | Der Workspace, in dem die Ausgabe-Feature-Classes gespeichert werden. Der Workspace kann eine vorhandene Geodatabase oder ein vorhandenes Feature-Dataset sein. | Workspace; Feature Dataset |
out_layer | Der Gruppen-Layer, der die erstellten Annotationen enthält. Sie können den Ausgabe-Gruppen-Layer mit dem Werkzeug In Layer-Datei speichern in einer Layer-Datei speichern. | Group Layer |
anno_suffix | Das Suffix, das jeder neuen Annotation-Feature-Class hinzugefügt wird. Dieses Suffix wird für jede neue Annotation-Feature-Class an den Namen der Quell-Feature-Class angehängt. Der Bezugsmaßstab für die Annotation folgt auf dieses Suffix. | String |
reference_scale_value (optional) | Der Maßstabswert, der als Bezug für die Annotation verwendet wird. Alle Symbol- und Textgrößen in der Annotation werden relativ zu diesem Maßstab angezeigt. | Double |
reference_scale_field (optional) | Das Feld im Polygon-Index-Layer, das den Bezugsmaßstab der Annotation festlegt. Alle Symbol- und Textgrößen in der Annotation werden relativ zu diesem Maßstab angezeigt. | Field |
tile_id_field (optional) | Ein Feld im Polygon-Index-Layer, das die gekachelte Fläche eindeutig identifiziert. Mit diesen Werten wird das Feld "TileID" in der Attributtabelle der Annotation-Feature-Class ausgefüllt. | Field |
coordinate_sys_field (optional) | Ein Feld im Polygon-Index-Layer, das das Koordinatensystem für jede Kachel enthält. Aufgrund der zur Speicherung eines Koordinatensystems erforderlichen Feldlänge muss ein Polygon-Index-Layer, der ein Koordinatensystemfeld enthält, eine Geodatabase-Feature-Class sein. | Field |
map_rotation_field (optional) | Ein Feld im Polygon-Index-Layer, das den Winkel enthält, um den der Datenrahmen gedreht werden soll. | Field |
feature_linked (optional) | Lizenz:Dieser Parameter ist nur mit ArcGIS Desktop Standard- und ArcGIS Desktop Advanced-Lizenzen verfügbar. Gibt an, ob die Ausgabe-Annotation-Feature-Class mit den Features in einer anderen Feature-Class verknüpft werden.
| Boolean |
generate_unplaced_annotation (optional) | Gibt an, ob aus nicht platzierten Beschriftungen eine nicht platzierte Annotation erstellt werden sollen.
| Boolean |
which_layers (optional) | Gibt an, ob die Annotation für alle Layer in der Karte oder für einen einzelnen Layer erstellt wird. Bei einem einzelnen Layer muss dieser angegeben werden.
| String |
single_layer (optional) | Der Layer, der konvertiert wird, wenn der Parameter which_layers auf SINGLE_LAYER gesetzt ist. Dieser Layer muss sich in der Karte befinden. | Feature Layer |
require_symbol_id (optional) | Gibt an, ob alle Textsymboleigenschaften bearbeitet werden können.
| Boolean |
auto_create (optional) | Gibt an, ob beim Hinzufügen neuer Features zur verknüpften Feature-Class eine Annotation erstellt werden sollen, wenn der Parameter feature_linked auf FEATURE_LINKED gesetzt ist.
| Boolean |
update_on_shape_change (optional) | Gibt an, ob die Position der Annotation beim Aktualisieren der Form des verknüpften Features aktualisiert werden soll, wenn der Parameter feature_linked auf FEATURE_LINKED gesetzt ist.
| Boolean |
multiple_feature_classes (optional) | Gibt an, ob die Beschriftungen in einzelne Annotation-Feature-Classes oder nur eine einzige Annotation-Feature-Class konvertiert werden. Findet die Konvertierung in eine einzige Annotation-Feature-Class statt, kann die Annotation nicht Feature-bezogen sein.
| Boolean |
merge_label_classes (optional) | Gibt an, ob ähnliche Beschriftungsklassen zusammengeführt werden sollen, wenn der Parameter multiple_feature_classes auf SINGLE_FEATURE_CLASS gesetzt ist.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_workspace | Der Workspace, in dem die Ausgabe-Feature-Classes gespeichert werden. | Workspace; Feature-Dataset |
Codebeispiel
Python-Beispiel für TiledLabelsToAnnotation, das Beschriftungen für einen Layer in einer Karte auf der Grundlage eines Polygonindex-Layers in Annotationen konvertiert.
import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.TiledLabelsToAnnotation_cartography("Map1", "Tiles", "data.gdb",
"GroupAnno", "Anno", "", "Tile_Scale",
"OID", "", "", "FEATURE_LINKED",
"GENERATE_UNPLACED_ANNOTATION",
"SINGLE_LAYER", "Towns",
"REQUIRE_ID", "AUTO_CREATE",
"SHAPE_UPDATE", "", "")
Das folgende Skript veranschaulicht einen Workflow mit den Funktionen MapServerCacheTilingSchemeToPolygons und TiledLabelsToAnnotation.
# Name: TiledLabelsToAnnotation_Example2.py
# Description: Create a tile feature class and use those tiles to create annotation.
# Requirements: ArcGIS Desktop Advanced license
# Import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data/data.gdb"
# Set local variables
aprx = arcpy.mp.ArcGISProject(r"C:/data/Annotation.aprx")
inMap = aprx.listMaps("Map")[0]
inTilingScheme = os.path.join(
arcpy.GetInstallInfo()['InstallDir'],
'Resources\\TilingSchemes\\ArcGIS_Online_Bing_Maps_Google_Maps.xml')
outFeatureClass = "C:/data/data.gdb/Tiles"
inTileExtent = "USE_MAP_EXTENT"
inClipping = "CLIP_TO_HORIZON"
inAntialiasing = "NONE"
inScales = ""
# Execute MapServerCacheTilingSchemeToPolygons
arcpy.MapServerCacheTilingSchemeToPolygons_cartography(
inMap, inTilingScheme, outFeatureClass, inTileExtent, inClipping,
inAntialiasing, inScales)
# Set local variables
inPolygonIndexLayer = "Tiles"
inOutGeodatabase = "C:/data/data.gdb"
outOutLayer = "GroupAnno"
inAnnoSuffix = "Anno"
inRefScaleValue = ""
inRefScaleField = "Tile_Scale"
inTileIDField = "OID"
inCoordSysField = ""
inMapRotationField = ""
inFeatureLinked = "STANDARD"
inGenerateUnplaced = "GENERATE_UNPLACED_ANNOTATION"
inWhichLayers = "ALL_LAYERS"
inSingleLayer = ""
inRequireSymbolID = ""
inAutoCreate = ""
inUpdateOnShapeChange = ""
inMultipleFeatureClasses = "SINGLE_FEATURE_CLASS"
inMergeFeatureClasses = "MERGE_LABEL_CLASS"
# Execute TiledLabelsToAnnotation
arcpy.TiledLabelsToAnnotation_cartography(
inMap, inPolygonIndexLayer, inOutGeodatabase, outOutLayer, inAnnoSuffix,
inRefScaleValue, inRefScaleField, inTileIDField, inCoordSysField,
inMapRotationField, inFeatureLinked, inGenerateUnplaced, inWhichLayers,
inSingleLayer, inRequireSymbolID, inAutoCreate, inUpdateOnShapeChange,
inMultipleFeatureClasses, inMergeFeatureClasses)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja