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