Сохранить схему листов кэша картографического сервиса как полигоны (Картография)
Резюме
Создает новый класс полигональных пространственных объектов из существующей схемы разбиения на листы.
Этот инструмент делит экстент фрейма данных с использованием масштабов, используемых в сервисах схемы листов кэша существующей карты, и создает листы на большую территорию - "супермозаику". Так как экстент "супермозаики" больше чем фактические листы, определенные в схеме, листы, используемые в качестве входных для инструмента Надписи листов в аннотации (Tiled Labels to Annotation), могут преобразовать надписи в аннотацию на большей территории за один раз. Этот процесс уменьшает количество повторяющихся на листах аннотаций.
Использование
-
Существует несколько вариантов загрузки существующей схемы листов:
- Загрузка схемы листов с картографических сервисов, таких как ArcGIS online, Google Maps, Bing Maps или Yahoo. Эти схемы листов расположены в установочном каталоге ArcGIS for Desktop (например, C:\Program Files\ArcGIS\Desktop10.1\TilingSchemes).
- Загрузка схемы листов из кэша сервиса существующей карты. Кэш карты имеет файл схемы листов, conf.xml, расположенный в папке кэша (например, C:\arcgisserver\arcgiscache\MyService\MyDataFrame\conf.xml).
- Создание собственного файла схемы листов. Дополнительные сведения см. в разделе Доступные свойства кэша карты справочной системы ArcGIS for Server.
-
Выходной класс объектов, полученный в результате работы этого инструмента, может быть использован в качестве входного для инструмента Надписи листов в аннотации (Tiled Labels to Annotation).
-
Для параметра Вырезать листы по горизонту системы координат (Clip tiles at the coordinate system horizon) горизонт системы координат является допустимой областью использования для определенной географической системы координат или системы координат проекции.
Синтаксис
Параметр | Объяснение | Тип данных |
map_document |
Исходный документ карты. | ArcMap Document |
data_frame |
Фрейм данных исходного документа карты. | String |
tiling_scheme |
Путь к xml-файлу предопределенной схемы листов. | File |
output_feature_class |
Выходной класс полигональных объектов. | Feature Class |
use_map_extent |
Выберите, создавать ли листы для всего экстента схемы листов или только для листов, пересекающий общий экстент фрейма данных.
| Boolean |
clip_to_horizon |
Определяет, ограничить ли область создания полигонов допустимой областью использования географической системы координат или системы координат проекции.
| Boolean |
antialiasing (дополнительно) | Выберите для создания полигонов, соответствующих кэшам картографических сервисов с активизированным сглаживанием. Размер "супермозаики" картографического сервиса - 2048 x 2048 пикселов со сглаживанием или 4096 x 4096 пикселов без сглаживания. Для того чтобы определить, использовалось ли сглаживание в существующем кэше, нужно открыть файл схемы листов conf.xml и проверить, установлено ли значение TRUE для тэга Antialiasing.
| Boolean |
levels [level,...] (дополнительно) | Масштабные уровни, для которых создаются полигоны. Для создания полигонов для всех масштабных уровней, включенных в схему листов, оставьте этот параметр незаполненным. Вы можете выбрать, создавать ли полигоны для всех или только для некоторых масштабных уровней, включенных в вашу схему листов. Однако для добавления дополнительных масштабных уровней необходимо изменить файл вашей схемы листов или создать новый файл. | Double |
Пример кода
Этот автономный скрипт демонстрирует пример использования функции MapServerCacheTilingSchemeToPolygons.
import arcpy
from arcpy import env
env.workspace = "C:/data/data.gdb"
arcpy.MapServerCacheTilingSchemeToPolygons_cartography("C:/data/Annotation.mxd",
"Layers",
"C:/Program Files/ArcGIS/Desktop10.1/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml",
"Tiles","USE_MAP_EXTENT","CLIP_TO_HORIZON", "NONE", "")
Представленный скрипт демонстрирует рабочий процесс с использованием функций MapServerCacheTilingSchemeToPolygons и TiledLabelsToAnnotation.
# Name: MapServerCacheTilingSchemeToPolygons_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.1/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)