Слой в KML (Layer To KML) (Конвертация)
Резюме
Этот инструмент конвертирует пространственный векторный или растровый слой в файл KML, содержащий перевод геометрии и символов Esri. Этот файл сжимается с помощью сжатия ZIP, имеет расширение .kmz и может быть прочитан любым клиентом KML, включая ArcGIS Explorer, ArcGlobe и Google Earth.
Использование
Можно управлять внешним видом KML двумя способами.
- Если используются свойства слоя, такие как настройка Всплывающее окно HTML, отображаемое выражение и псевдоним для KMLSnippet, они будут использоваться и для создания KML.
- Если свойства слоя не заданы и класс объектов содержит определенные атрибуты (поля), свойства поля будут использоваться при создании объектов в KML. Слои, изначально созданы с помощью инструмента KML в слой, содержат атрибуты, определяющие, как будет создаваться KML.
-
Можно уменьшить размер выходного документа KMZ, если слой имеет зависящие от масштаба свойства отображения слоя и выбран соответствующий масштаб выходных данных карты.
-
Все файлы KML/KMZ создаются в системе координат WGS84. Если ваши слои еще не находятся в этой системе координат, убедитесь, что они проецируются правильно. Если проекцию нужно преобразовать, можно воспользоваться инструментом Проецировать (Project), чтобы перепроецировать данные перед конвертацией в KML.
-
Для вывода одного растрового изображения, драпированного над топографией, используйте опцию Возвращает одно составное изображение.
Синтаксис
Параметр | Объяснение | Тип данных |
layer |
Объект, растровый слой или файл слоя (.lyr), который следует конвертировать в KML. | Layer |
out_kmz_file |
Файл KML, который будет сохранен. Этот файл сжимается и имеет расширение .kmz. Он может быть прочитан любым клиентом KML, включая ArcGIS Explorer, ArcGlobe и Google Earth. | File |
layer_output_scale (дополнительно) |
Масштаб, в котором слой будет экспортирован. Этот параметр используется с любыми видами масштабной зависимости, такими как видимость слоя или масштабно-зависимое отображение. Если слой невидим в экспортируемом масштабе, он не будет включен в создание файла KML. Если масштабной зависимости нет, можно использовать любое значение, например, 0. Если вы экспортируете слой, который будет отображаться в виде 3D-векторов, а параметр is_composite имеет значение NO_COMPOSITE, этому параметру можно присвоить любое значение в том случае, если у объектов нет определенного масштабно-зависимого отображения. Следует вводить только числовые значения, например указывая масштаб, введите 20000, а не 1:20000 или 20,000. | Double |
is_composite (дополнительно) |
| Boolean |
boundary_box_extent (дополнительно) |
Географический экстент области, которая будет экспортирована. Пределы прямоугольника экстента должны быть заданы как ограниченная пробелами строка географических координат WGS84 в форме «нижний левый верхний правый» (xmin, ymin, xmax, ymax). | Extent |
image_size (дополнительно) |
Определяет вертикальное и горизонтальное разрешение любого растра, входящего в выходной документ KML. Используйте этот параметр с параметром DPI, чтобы контролировать выходное разрешение растра. | Long |
dpi_of_client (дополнительно) |
Определяет разрешение устройства для всех растров в выходном документе KML. Используйте этот параметр с параметром Image Size, чтобы контролировать выходное разрешение растра. | Long |
ignore_zvalue (дополнительно) |
| Boolean |
Пример кода
Следующий скрипт окна Python демонстрирует, как использовать функцию Слой в KML (LayerToKML) в прямом режиме.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.LayerToKML_conversion("bldg.lyr", "bldg.kmz")
Следующий скрипт Python демонстрирует, как использовать функцию Слой в KML (LayerToKML) в автономном скрипте.
# Name: LayerToKML Example
# Description: The following stand-alone script demonstrates how to find
# all layer files in a given workspace and export each to
# a KML at the 1:10,000, 1:20,000, and 1:30,000 scale using
# the LayerToKML tool.
# Author: ESRI
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Use the ListFiles method to identify all layer files in workspace
if len(arcpy.ListFiles("*.lyr")) > 0:
for layer in arcpy.ListFiles("*.lyr"):
# Set Local Variables
composite = 'NO_COMPOSITE'
pixels = 2048
dpi = 96
clamped = 'CLAMPED_TO_GROUND'
# Strips the '.lyr' part of the name and appends '.kmz'
outKML = file[:4] + ".kmz"
for scale in range(10000, 30001, 10000):
#Execute LayerToKML
arcpy.LayerToKML_conversion(layer, outKML, scale, composite,
'', pixels, dpi, clamped)
else:
arcpy.AddMessage('There are no layer files in '+env.workspace+'.')