exponenta event banner

kmlwritepolygon

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

Описание

пример

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 устанавливает интерпретацию высоты как'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 является именем аргумента и 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» или на многоугольнике в окне просмотра.

Элементами описания могут быть обычный текст или разметка 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' и вектор геопоинт. 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