kmlwritepolygon

Запишите географический полигон в файл KML

Синтаксис

kmlwritepolygon(filename,latitude,longitude)
kmlwritepolygon(filename,latitude,longitude,altitude)
kmlwritepolygon(___,Name,Value)

Описание

пример

kmlwritepolygon(filename,latitude,longitude) пишут географические данные о широте и долготе, которые задают вершины полигона к файлу, заданному filename в формате Языка разметки замочной скважины (KML). kmlwritepolygon создает KML Placemark элемент для каждого полигона. По умолчанию kmlwritepolygon устанавливает высотное значение, сопоставленное с вершинами к 0, и устанавливает высотную интерпретацию на 'clampToGround'.

пример

kmlwritepolygon(filename,latitude,longitude,altitude) пишут данные о полигоне в файл KML, включая значения altitude для каждой вершины. altitude может быть скалярным значением, в этом случае kmlwritepolygon использует его в качестве значения для каждой вершины. Если altitude является вектором, необходимо задать значение для каждой вершины; то есть, altitude должен быть той же длиной как latitude и longitude. По умолчанию, когда вы задаете высотные значения, kmlwritepolygon устанавливает высотную интерпретацию to'relativeToSeaLevel'.

пример

kmlwritepolygon(___,Name,Value) задает пары "имя-значение", которые устанавливают дополнительные свойства функции KML. Названия параметра могут быть сокращены и не чувствительные к регистру.

Примеры

свернуть все

Загрузите данные о широте и долготе, которые задают береговые линии континентов.

load coastlines

Задайте имя файла вывода KML, который вы хотите создать.

filename = 'coastlines.kml';

Запишите данные о береговой линии в файл как полигон.

kmlwritepolygon(filename,coastlat,coastlon)

Задайте координаты широты и долготы центра звонков. В данном примере координаты задают Эйфелеву башню.

lat0 = 48.858288;
lon0 = 2.294548;

Задайте внутренний радиус и внешний радиус двух маленьких кругов. Примеры вызывают poly2ccw, чтобы изменить направление порядка вершины второго круга к против часовой стрелки. Эта смена направления необходима, чтобы задать пробел между этими двумя кругами как кольцевой полигон.

outerRadius = .02;
innerRadius = .01;
[lat1,lon1] = scircle1(lat0,lon0,outerRadius);
[lat2,lon2] = scircle1(lat0,lon0,innerRadius);
[lon2,lat2] = poly2ccw(lon2,lat2);
lat = [lat1; NaN; lat2];
lon = [lon1; NaN; lon2];
alt = 500;

Задайте имя файла вывода KML и запишите данные в файл.

filename = 'EiffelTower.kml';
kmlwritepolygon(filename,lat,lon,alt, ...
      'EdgeColor','g','FaceColor','c','FaceAlpha',.5)

Задайте координаты широты и долготы, которые задают вершины полигона. В данном примере задайте значения долготы, которые охватывают 180 меридианов степени.

lat = [0 1 1 0 0];
lon = [179.5 179.5 -179.5 -179.5 179.5];
h = 5000;
alt = ones(1,length(lat)) * h;
filename = 'cross180.kml';
kmlwritepolygon(filename,lat,lon,alt,'EdgeColor','r','FaceColor','w')

По умолчанию полигон содержит шов в 180 метках степени. Чтобы удалить этот шов, установите PolygonCutMeridian на 0.

filename = 'noseam.kml';
kmlwritepolygon(filename,lat,lon,alt,'EdgeColor','r', ...
       'FaceColor','w','PolygonCutMeridian',0);

Чтобы отобразить пандус безо шва, перенесите значения долготы к области значений [0 360] и установите CutPolygon на false. Используйте параметр Extrude, чтобы соединить полигон с основанием для лучшей видимости.

filename = 'ramp.kml';
lon360 = wrapTo360(lon);
altramp = [0 0 h h 0];
kmlwritepolygon(filename,lat,lon360,altramp,'EdgeColor','r', ...
       'FaceColor','w','CutPolygons',false,'Extrude',true);

Входные параметры

свернуть все

Имя выходного файла, заданного как скаляр строки или вектор символов. kmlwritepolygon создает файл в текущей папке, если вы не задаете полное имя или относительный путь. Если имя файла включает расширение, это должен быть .kml.

Типы данных: char | string

Широты вершин полигона, заданных как вектор в области значений [-90 90].

Типы данных: single | double

Долгота вершин полигона, заданных как вектор в области значений [-180, 180].

Типы данных: single | double

Высота вершин полигона, заданных как скаляр или вектор. Единица измерения является метрами.

  • Если скаляр, kmlwritepolygon применяет значение к каждой точке.

  • Если вектор, необходимо задать высотное значение для каждой вершины. Таким образом, векторный altitude должен быть той же длиной как latitude и longitude.

Типы данных: single | double

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: kmlwritepolygon(filename,lat,lon,alt,'EdgeColor','g','FaceColor','c','FaceAlpha',.5)

Метка, отображенная в средстве просмотра для полигона, заданного как пара, разделенная запятой, состоящая из 'Name' и скаляра строки или вектора символов. Если список вершин содержит несколько внешних звонков, kmlwritepolygon создает папку со значением Name, и каждый внешний звонок маркировал 'Part N', где N отличается от 1 до количества внешних звонков.

Типы данных: char | string

Содержимое, которое будет отображено в воздушном шаре описания полигона, заданном как пара, разделенная запятой, состоящая из 'Description' и скаляра строки или вектора символов. Содержимое появляется в воздушном шаре описания, когда вы кликаете или по имени функции в панели Гугл Ерс-Плэйсез или по полигону в окне средства просмотра.

Элементы описания могут быть или простым текстом или разметкой HTML. Когда это - простой текст, Google Earth применяет основное форматирование, заменяя новые строки на теги разрыва строк и заключая допустимые URL с тегами привязки, чтобы сделать их гиперссылками. Чтобы видеть примеры HTML-тэгов, которые распознает Google Earth, см. https://earth.google.com.

Типы данных: char | string

Цвет поверхности полигона, заданной как пара, разделенная запятой, состоящая из 'FaceColor' и MATLAB® Color Specification (ColorSpec). Можно задать вектор символов, скалярный массив ячеек, содержащий вектор символов, или 1 3 вектор doubles со значениями в области значений [0 1]. Чтобы создать полигон, который не заполнен, задайте значение 'none'.

Типы данных: double | char | cell

Прозрачность поверхности полигона, заданной как пара, разделенная запятой, состоящая из 'FaceAlpha' и числового скаляра в области значений [0 1]. Значение по умолчанию, 1, указывает, что поверхность полностью непрозрачна.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Цвет ребра полигона, заданного как пара, разделенная запятой, состоящая из 'EdgeColor' и Спецификации цветов MATLAB (ColorSpec). Можно задать вектор символов, скалярный массив ячеек, содержащий вектор символов, или 1 3 вектор doubles со значениями между 0 и 1. Чтобы указать, что полигон не имеет никакой схемы, задайте значение 'none'.

Типы данных: double | char | cell

Прозрачность ребра полигона, заданного как пара, разделенная запятой, состоящая из 'EdgeAlpha' и числового скаляра в области значений [0 1]. Значение по умолчанию, 1, указывает, что ребро полностью непрозрачно.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Ширина ребра полигона в пикселях, заданных как пара, разделенная запятой, состоящая из 'LineWidth' и положительного числового скаляра.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Соедините полигон с землей, заданной как пара, разделенная запятой, состоящая из 'Extrude' и логического скалярного или числового значения true (1) или false (0).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Сократите части полигона, заданные как пара, разделенная запятой, состоящая из 'CutPolygons' и логического скалярного или числового значения true (1) или false (0). Если true, kmlwritepolygon сокращает полигоны в меридиане, заданном PolygonCutMeridian. kmlwritepolygon возвращает ошибку, если вы устанавливаете это на true, части полигона требуют сокращения, и высотные значения неоднородны.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Меридиан, где части полигона сокращаются, задал как пара, разделенная запятой, состоящая из 'PolygonCutMeridian' и скалярного числового значения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Интерпретация высотных значений, заданных как пара, разделенная запятой, состоящая из 'AltitudeMode' и любое из следующих значений:

Значение

Значение

'clampToGround'

Проигнорируйте высотные значения и установите функцию на земле. Это значение является интерпретацией по умолчанию, когда вы не задаете значения altitude.

'relativeToGround'

Установите высотные значения относительно фактического наземного повышения конкретной функции.

'relativeToSeaLevel'Установите высотные значения относительно уровня моря, независимо от фактических значений повышения ландшафта ниже функции. Это значение является интерпретацией по умолчанию, когда вы задаете высотные значения. В терминологии KML эта интерпретация называется 'absolute'.

Типы данных: char

Положение виртуальной камеры (глаз) относительно объекта, просматриваемого, заданного как пара, разделенная запятой, состоящая из 'PLookAt' и вектора геоточки. Параметр LookAt задает виртуальную камеру, которая просматривает полигон. Поля вектора геоточки задают представление, обрисованное в общих чертах в приведенной ниже таблице. LookAt может только вниз посмотреть на функцию. Чтобы наклонить виртуальную камеру, чтобы изучить выше горизонта небо, используйте параметр Camera.

Поле

Значение

Значение

'Latitude'

Широта точки камера смотрит на в градусах

Скалярный double

'Longitude'

Долгота точки камера смотрит на в градусах

Скалярный double

'Altitude'

Высота точки камера смотрит на в (дополнительных) метрах

Скалярное числовое значение по умолчанию: 0

'Heading'

Направление камеры (азимут), в градусах (дополнительный)

Скаляр, числовой [0 360] значение по умолчанию 0

'Tilt'

Угол между направлением позиции LookAt и нормальным на поверхность (дополнительной) Земли

Скаляр, числовой [0 90] значение по умолчанию: 0

'Range'

Расстояние в метрах от точки до позиции LookAt

Числовой скаляр

'AlititudeMode'

Задает, как высота интерпретирована для (дополнительной) точки LookAt

'relativeToSeaLevel', 'clampToGround', (значение по умолчанию), 'relativeToGround'

Положение и направление просмотра камеры относительно поверхности Земли, заданной как пара, разделенная запятой, состоящая из 'Camera' и вектора геоточки. Вектор содержит следующие поля. Значение камеры обеспечивает полные шесть управления степеней свободы представлением, таким образом, можно расположить камеру в пробел и затем вращать его вокруг X, Y и осей Z. Самое главное можно наклонить поле зрения камеры, чтобы изучить выше горизонта небо.

Поле

Значение

Значение

'Latitude'

Широта точки глаза (виртуальная камера), заданный в градусах

Скалярный double

'Longitude'

Долгота точки глаза (виртуальная камера), заданный в градусах

Скалярный double

'Altitude'

Расстояние камеры от поверхности Земли, заданной в метрах

Скалярное числовое значение по умолчанию: 0

'Heading'

Направление камеры (азимут) в градусах (Необязательно)

Скаляр, числовой [0 360] значение по умолчанию 0

'Tilt'

Вращение камеры вокруг оси X, заданной в градусах (Необязательно)

Скаляр, числовой [0 180] значение по умолчанию: 0

'Roll'

Вращение камеры вокруг оси Z, заданной в градусах (Необязательно)

Скаляр, числовой, по умолчанию: 0

'AlititudeMode'

Задает, как kmlwritepolygon интерпретирует высотные значения камеры. (Необязательно)

'relativeToSeaLevel', 'clampToGround', (значение по умолчанию), 'relativeToGround'

Смотрите также

| | |

Введенный в R2016a