kmlwritepolygon

Запись географического многоугольника в файл KML

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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 - имя аргумента и 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' и строковый скаляр или вектор символов. Содержимое появляется в номере позиции описания при щелчке по функции имени на панели Google Earth Places или по многоугольнику в средство просмотра окне.

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

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

Цвет грани многоугольника, заданный как разделенная разделенными запятой парами, состоящая из 'FaceColor' и MATLAB® Спецификация цвета (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 | logical

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

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

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

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

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

Значение

Значение

'clampToGround'

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

'relativeToGround'

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

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

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

Положение виртуальной камеры (глаза) относительно просматриваемого объекта, заданное как разделенная разделенными запятой парами, состоящая из 'PLookAt' и геоточка. The 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