Надписи листов в аннотации (Картография)
Краткая информация
Конвертирует надписи в аннотации для слоев в документе карты, основываясь на полигональном индексном слое.
Инструмент разделяет карту на листы и создает поочередно аннотации для каждого листа. Такой подход может быть полезным для конвертации в аннотации большого количества надписей. В качестве полигонального слоя индекса может использоваться слой, созданный инструментами Сохранить схему листов кэша картографического сервиса как полигоны (Map Server Cache Tiling Scheme To Polygons) и Класс объектов индексной сетки (Grid Index Features), либо любой другой класс полигональных пространственных объектов, покрывающий территорию, для которой вы хотите создать аннотации.
Использование
-
Поддерживаются диапазоны масштабов класса надписей. Когда инструмент создает аннотации для определенного масштаба, конвертируются только классы надписей, являющиеся включенными и видимыми в данном масштабе.
Примечание:Диапазоны масштабов классов надписей устанавливаются в свойствах слоев ArcMap. Как только вы настроили свойства надписей, сохраните документ карты перед запуском данного инструмента.
-
Если вы выберете листы до запуска данного инструмента, будут созданы аннотации только для выбранных листов.
-
Для того чтобы обновить аннотации только для некоторых листов полигонального слоя индекса, сначала выберете объекты аннотаций с нужным значением TileID и удалите их. Затем выберите полигональные объекты и запустите инструмент заново.
-
Выходными данными инструмента являются наборы составных слоев. Каждый составной слой содержит составные слои для всех масштабов, для которых были созданы аннотации.
-
Во время работы в ArcCatalog или ModelBuilder вы можете использовать инструмент Сохранить в файл слоя (Save_To_Layer_File), чтобы записать выходной составной слой в файл слоя. При использовании ArcMap инструмент отображает составной слой, если этот параметр выставлен в опциях геообработки. Создаваемый составной слой является временным и не сохранится по окончании сеанса редактирования, если документ не будет сохранен.
-
Составные слои, созданные в ArcCatalog, не могут использоваться в ArcMap, если они сохранены в файл слоя с использованием инструмента Сохранить в файл слоя (Save_To_Layer_File).
-
Составной слой будет записан поверх существующего, если будет указано одинаковое имя слоя, и если явным образом указывается разрешение на перезапись.
-
Если во фрейме данных обнаружены дублирующиеся названия классов пространственных объектов, к тексту аннотации будет добавлен номер (например, Cities01Anno10000, Cities02Anno10000 и т.д.).
-
Перезапись классов пространственных объектов не будет осуществляться в случае, если указанный суффикс уже существует. В этом случае номер будет добавлен к суффиксу класса пространственных объектов (например, CitiesAnno10000, CitiesAnno10000_1 и т.д.).
-
Базовый масштаб для класса объектов аннотаций может быть указан одним из двух способов.
- Первый вариант – использовать поле из слоя индекса полигона для определения базового масштаба выходного класса объектов аннотаций. Используйте этот способ в случае, если вы будете создавать аннотации для нескольких масштабных уровней.
- Второй способ – явное указание значения базового масштаба. Все классы объектов аннотаций будут использовать это значение базового масштаба. Если в документе карты установлен базовый масштаб, это значение будет использоваться в качестве входного значения по умолчанию инструмента. При работе в ArcMap в случае, если не установлено значение базового масштаба, в качестве значения по умолчанию будет использоваться текущий масштаб.
-
Если вы работаете со слоем индекса полигона, созданным с помощью инструмента Сохранить схему листов кэша картографического сервиса как полигоны (Map_Server_Cache_Tiling Scheme To Polygons), используйте поле Tile_Scale в качестве Поля базового масштаба (Reference Scale Field). Будет создан новый класс объектов аннотаций для каждого сочетания layer/Tile_Scale (слой/масштаб листа).
-
Если вы создаете аннотации для большого диапазона базовых масштабов, разрабатывайте оформление вашей карты отдельно для каждого из нужных вам масштабов и не устанавливайте базовый масштаб во фрейме данных.
-
Если используется поле системы координат полигонального слоя индекса, аннотации для каждого листа будут спроецированы в соответствующую систему координат с целью их корректного отображения и размещения.
-
Аннотация, являющая связанной с объектом, относится к определенному объекту другого класса пространственных объектов базы геоданных. Если эта опция выбрана, когда вы создаете выходной класс пространственных объектов аннотаций, также будет автоматически создан класс отношений.
-
При создании связанных с объектом аннотаций выходная рабочая область должна совпадать с рабочей областью связанных классов пространственных объектов.
-
Некоторые надписи в данный момент могут не отображаться на карте, т.к. для них не хватает места. Чтобы конвертировать эти надписи, отметьте опцию Построить неразмещенные аннотации (Generate Unplaced Annotation). При этом неразмещенные надписи будут сохранены в классе объектов-аннотаций, что позволит вам позже, в сеансе редактирования ArcMap, правильно разместить их.
Синтаксис
Параметр | Объяснение | Тип данных |
map_document |
Исходный документ карты, содержащий надписи, которые необходимо преобразовать в аннотации. | ArcMap Document |
data_frame |
Фрейм данных документа карты, содержащий надписи, которые необходимо преобразовать в аннотации. | String |
polygon_index_layer |
Полигональный слой, содержащий объекты листов. | Table View |
out_geodatabase |
Рабочая область, в которой будут сохранены выходные классы пространственных объектов. Рабочая область может представлять собой существующую базу геоданных или существующий набор классов объектов. | Workspace ;Feature Dataset |
out_layer |
Составной слой, содержащий созданные аннотации. Во время работы в ArcCatalog вы можете использовать инструмент Сохранить в файл слоя (Save To Layer File), чтобы записать выходной составной слой в файл слоя. При использовании 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 (дополнительно) |
Лицензия: Этот параметр доступен только с лицензиями ArcGIS for Desktop Standard и ArcGIS for Desktop Advanced. Выберите, будет ли выходной класс объектов-аннотаций связан с пространственными объектами другого класса пространственных объектов.
| Boolean |
generate_unplaced_annotation (дополнительно) |
Выберите, будут ли создаваться неразмещенные аннотации из неразмещенных надписей.
| Boolean |
Пример кода
import arcpy
from arcpy import env
env.workspace = "C:/data/data.gdb"
arcpy.TiledLabelsToAnnotation_cartography("Annotation.mxd", "Layers",
"Tiles", "data.gdb", "GroupAnno", "Anno", "", "Tile_Scale",
"OID", "", "", "FEATURE_LINKED", "GENERATE_UNPLACED_ANNOTATION")
Представленный скрипт демонстрирует рабочий процесс с использованием функций MapServerCacheTilingSchemeToPolygons и TiledLabelsToAnnotation.
# Name: TiledLabelsToAnnotation_Example2.py
# Description: Create a tile feature class and use those tiles to create annotation.
# Requirements: ArcGIS for Desktop Advanced license
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/data.gdb"
# Set local variables
inMapDocument = "C:/data/Annotation.mxd"
inDataFrame = "Layers"
inTilingScheme = "C:/Program Files/ArcGIS/Desktop10.2/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)