Сводка
Конвертирует надписи в аннотации для слоев в карте, основываясь на полигональном индексном слое.
Инструмент разделяет карту на листы и создает поочередно аннотации для каждого листа. Такой подход может быть полезным для конвертации в аннотации большого количества надписей. Индексный слой полигонов может быть создан инструментами Сохранить схему листов кэша картографического сервиса как полигоны и Класс объектов индексной сетки, либо любым другим классом полигональных пространственных объектов, покрывающим территорию, для которой вы хотите создать аннотацию.
Использование
Поддерживаются диапазоны масштабов класса надписей. Когда инструмент создает аннотации для определенного масштаба, конвертируются только классы надписей, являющиеся включенными и видимыми в данном масштабе.
Если вы выберете листы до запуска данного инструмента, будут созданы аннотации только для выбранных листов.
Для того чтобы обновить аннотации только для некоторых листов индексного слоя полигона, сначала выберете объекты аннотаций с нужным значением TileID и удалите их. Затем выберите полигональные объекты и снова запустите инструмент.
Выходными данными инструмента являются наборы составных слоев. Каждый составной слой содержит составные слои для всех масштабов, для которых были созданы аннотации.
Во время работы в ArcCatalog или ModelBuilder вы можете использовать инструмент Сохранить в файл слоя, чтобы записать выходной составной слой в файл слоя. При использовании инструмента в ArcMap, если эта опция отмечена в опциях геообработки, инструмент добавляет к отображению составной слой. Создаваемый составной слой является временным и не сохранится по окончании работы в программе, если документ не будет сохранен.
Составные слои, созданные в ArcCatalog, не могут быть использованы в ArcMap до тех пор, пока они не будут сохранены как файлы слоя с помощью инструмента Сохранить в файл слоя.
Составной слой будет записан поверх существующего, если будет указано одинаковое имя слоя, и если явным образом указывается разрешение на перезапись.
Если во фрейме данных обнаружены дублирующиеся названия классов пространственных объектов, к тексту аннотации после имени класса объектов будет добавлен номер (например, Cities01Anno10000, Cities02Anno10000 и т.д.)
Классы объектов-аннотаций не будут перезаписываться, если будет указан уже существующий суффикс. В этом случае к суффиксу класса объектов-аннотаций будет добавлен номер (например, CitiesAnno10000, CitiesAnno10000_1 и т.д.).
Базовый масштаб для класса объектов аннотаций может быть задан одним из следующих двух способов:
- Первый вариант – использовать поле из слоя индекса полигона для определения базового масштаба выходного класса объектов аннотаций. Используйте этот способ в случае, если вы будете создавать аннотации для нескольких масштабных уровней.
- Второй способ – явное указание значения базового масштаба. Все классы объектов аннотаций будут использовать это значение базового масштаба. Если в документе карты установлен базовый масштаб, это значение будет использоваться в качестве входного значения по умолчанию для инструмента. При работе в ArcMap, если значение базового масштаба не установлено, в качестве значения по умолчанию будет использоваться текущий масштаб.
Если вы работаете со слоем индексов полигона, созданным с помощью инструмента Сохранить схему листов кэша картографического сервиса как полигоны, используйте поле Tile_Scale в качестве Поля базового масштаба. Будет создан класс объектов аннотаций для каждого сочетания layer/Tile_Scale (слой/масштаб листа).
Если вы создаете аннотации для разных базовых масштабов, оформите карту отдельно для каждого из этих масштабов, избегая использования базового масштаба.
Если указано поле системы координат полигонального слоя индекса, аннотации для каждого листа будут перенесены в соответствующую систему координат с целью их корректного отображения и размещения.
Аннотация, являющая связанной с объектом, относится к определенному объекту другого класса пространственных объектов базы геоданных. Когда вы создаете класс объектно-связанных аннотаций, автоматически будет создан так же класс отношений.
При создании объектно-связанных аннотаций выходная рабочая область должна совпадать с рабочей областью классов пространственных объектов, с которыми связываются аннотации.
Некоторые надписи в данный момент могут не отображаться на карте, т.к. для них не хватает места. Чтобы конвертировать эти надписи, отметьте опцию Построить неразмещенные аннотации. Неразмещенные надписи будут сохранены в классе объектов-аннотаций, что позволит позднее разместить их во время сеанса редактирования .
Синтаксис
arcpy.cartography.TiledLabelsToAnnotation(map_document, data_frame, 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})
Параметр | Объяснение | Тип данных |
map_document | Исходный документ карты, содержащий надписи, которые необходимо преобразовать в аннотации. | ArcMap Document |
data_frame | Фрейм данных документа карты, содержащий надписи, которые необходимо преобразовать в аннотации. | String |
polygon_index_layer | Полигональный слой, содержащий объекты листов. | Table View |
out_geodatabase | Рабочая область, в которой будут сохранены выходные классы пространственных объектов. Рабочая область может представлять собой существующую базу геоданных или существующий набор классов объектов. | Workspace; Feature Dataset |
out_layer | Составной слой, содержащий созданные аннотации. При работе в ArcCatalog вы можете использовать инструмент Сохранить в файл слоя, чтобы записать выходной составной слой в файл слоя. При использовании инструмента в ArcMap, если эта опция отмечена в опциях геообработки, инструмент добавляет к отображению составной слой. Создаваемый составной слой является временным и не сохранится по окончании работы в программе, если документ не будет сохранен. | Group Layer |
anno_suffix | Суффикс, который добавляется к каждому классу объектов аннотаций. Суффикс будет добавлен к имени исходного класса пространственных объектов для каждого нового класса объектов аннотаций. За этим суффиксом следует значение базового масштаба. | String |
reference_scale_value (Дополнительный) | Значение масштаба, который будет использоваться в качестве базового для аннотации. Этот масштаб будет основой для всех размеров символов и текстов в аннотации. | Double |
reference_scale_field (Дополнительный) | Поле полигонального слоя индекса, определяющее базовый масштаб для аннотаций. Этот масштаб будет основой для всех размеров символов и текстов в аннотации. | Field |
tile_id_field (Дополнительный) | Поле полигонального слоя индекса, значение в котором позволяет уникально идентифицировать территорию листа. Этими значениями заполняется поле TileID атрибутивной таблицы класса объектов аннотаций. | Field |
coordinate_sys_field (Дополнительный) | Поле полигонального слоя индекса, в котором содержится информация о координатной системе каждого листа. Из-за требований, предъявляемых к длине поля, которая необходима для хранения информации о системе координат, полигональный слой индекса, содержащий поле, должен являться классом пространственных объектов базы геоданных. | Field |
map_rotation_field (Дополнительный) | Поле полигонального слоя индекса, содержащее значения угла, на который будет повернут фрейм данных. | Field |
feature_linked (Дополнительный) | Выберите, будет ли выходной класс объектов-аннотаций связан с пространственными объектами другого класса пространственных объектов.
| Boolean |
generate_unplaced_annotation (Дополнительный) | Указывает, будут ли создаваться неразмещенные аннотации из неразмещенных надписей.
| Boolean |
Производные выходные данные
Имя | Объяснение | Тип данных |
out_workspace | Рабочая область, в которой будут сохранены выходные классы пространственных объектов. | Workspace; Feature Dataset |
Пример кода
Пример инструмента TiledLabelsToAnnotation (Окно Python)
Пример Python для функции TiledLabelsToAnnotation, который конвертирует надписи в аннотации для слоев документа карты на основе полигонального индексного слоя.
import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.TiledLabelsToAnnotation_cartography("Annotation.mxd", "Layers",
"data.gdb", "GroupAnno", "Anno", "",
"Tile_Scale", "OID", "", "",
"FEATURE_LINKED",
"GENERATE_UNPLACED_ANNOTATION")
TiledLabelsToAnnotation, пример 2 (скрипт рабочего процесса)
Следующий скрипт демонстрирует рабочий процесс с использованием функций MapServerCacheTilingSchemeToPolygons и 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
inMapDocument = "C:/data/Annotation.mxd"
inDataFrame = "Layers"
inTilingScheme = os.path.join(
arcpy.GetInstallInfo()['InstallDir'],
"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(
inMapDocument, inDataFrame, inTilingScheme, outFeatureClass, inTileExtent,
inClipping, inAntialiasing, inScales)
# Set local variables
inMapDocument = "C:/data/Annotation.mxd"
inDataFrame = "Layers"
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"
# Execute TiledLabelsToAnnotation
arcpy.TiledLabelsToAnnotation_cartography(
inMapDocument, inDataFrame, inPolygonIndexLayer, inOutGeodatabase,
outOutLayer, inAnnoSuffix, inRefScaleValue, inRefScaleField, inTileIDField,
inCoordSysField, inMapRotationField,inFeatureLinked, inGenerateUnplaced)
Параметры среды
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да