kmlwrite

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

Следующие синтаксисы, в то время как все еще поддержано, не рекомендуются. Использование kmlwritepoint вместо этого.

  • kmlwrite(filename,lat,lon)

  • kmlwrite(filename,lat,lon,alt)

Описание

пример

kmlwrite(filename,S) пишут географическая точка, линия или данные о многоугольнике, хранимые в S к файлу, заданному filename в формате Языка разметки замочной скважины (KML). kmlwrite функция создает KML Placemark в файле и заполняет теги в placemark с данными в S.

пример

kmlwrite(filename,address) записи address к файлу, заданному filename в формате KML. address строковый скаляр или вектор символов, содержащий адресные сведения свободной формы, которые могут включать улицу, город, состояние, страну и/или индекс. Чтобы задать несколько адресов, используйте массив ячеек из символьных векторов или строковые скаляры. kmlwrite создает KML Placemark в файле, устанавливая значение тега адреса. Адрес является альтернативным способом задать точку, вместо того, чтобы использовать широту и долготу.

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

Примеры

свернуть все

Импортируйте данные о точке как географическую точку (geopoint) вектор.

placenames = gpxread("boston_placenames.gpx");

Задайте цвета, чтобы использовать с данными о точке.

colors = jet(length(placenames));

Запишите данные о точке в файл под названием boston_placenames.kml. Задайте имена точки и цвета значка с помощью аргументов name-value.

kmlwrite("boston_placenames.kml",placenames,"Name",placenames.Name,"Color",colors)

Считайте функции линии в географическую форму (geoshape) вектор.

tracks = gpxread("sample_tracks.gpx","Index",1:2);

Запишите данные о линии в файл KML. Задайте цвета, ширины, имена и описания линий с помощью аргументов name-value.

colors = ["red" "green"];
description = tracks.Metadata.Name;
name = ["track1" "track2"];

kmlwrite("sample_tracks.kml",tracks,"Color",colors,"LineWidth",2, ...
         "Description",description,"Name",name)

Считайте названия и местоположение крупнейших европейских городов из файла форм. shaperead функция возвращает географический массив структур (geostruct).

latlim = [30;75];
lonlim = [-25;45];
cities = shaperead("worldcities.shp","UseGeoCoords",true, ...
                   "BoundingBox",[lonlim, latlim]);

Преобразуйте структуру в географическую точку (geopoint) вектор.

cities = geopoint(cities);

Запишите данные в файл KML. Включайте названия города в placemarks при помощи Name аргумент значения имени. Удалите Description по умолчанию таблица.

kmlwrite("european_cities.kml",cities,"Name",cities.Name,"Description",{});

Создайте массив ячеек неструктурированных адресов. В данном примере используйте имена нескольких австралийских городов.

address = {'Perth, Australia', ...
           'Melbourne, Australia', ...
           'Sydney, Australia'};

Запишите неструктурированные адресные сведения в файл KML под названием australian_cities.kml. Включайте имена городов в placemarks использование Name аргумент значения имени.

kmlwrite("australian_cities.kml",address,"Name",address);

Импортируйте файл форм, содержащий данные о многоугольнике в геопространственную таблицу. Многоугольники представляют государственные границы.

GT = readgeotable("usastatelo.shp");

Создайте палитру для данных с помощью случайных, цветов с отключенным звуком.

colors = polcmap(height(GT));

Запишите данные о многоугольнике в файл KML под названием usastatelo.kml. Задайте метки и цвета поверхностей многоугольника и ребер с помощью аргументов name-value.

kmlwrite("usastatelo.kml",GT,"Name",GT.Name, ...
    "FaceColor",colors,"EdgeColor","k") 

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

свернуть все

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

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

Географические особенности, чтобы записать в файл в виде одного из следующего:

  • Геопространственная таблица, содержащая geopointshape, geolineshape, или geopolyshape объекты. kmlwrite функция не поддерживает геопространственные таблицы, содержащие больше чем один тип объекта фигуры. Для получения дополнительной информации о геопространственных таблицах, смотрите, Составляют Геопространственные Таблицы.

  • geopoint вектор.

  • geoshape вектор. Geometry поле идентифицирует тип данных как 'point'строка, или 'polygon'.

  • Географический массив структур (geostruct) с Lat и Lon поля . Если вы задаете географический массив структур с X и Y поля, kmlwrite выдает ошибку.

Поля атрибута S появитесь как таблица в теге Описания Placemark для каждого элемента S. Поля атрибута появляются в таблице в том же порядке, как они происходят в S.

Если S содержит допустимые высотные данные, kmlwrite пишут значения полей в файл как высоты KML и устанавливают высотную интерпретацию на 'relativeToSeaLevel'. Если S не содержит высотные данные, kmlwrite устанавливает высотное поле в файле к 0 и устанавливает высотную интерпретацию на 'clampToGround'. Высотные данные могут быть в поле, названном любым Elevation, Altitude, или Height. Если S содержит поля с больше чем одним из этих имен, kmlwrite выдает предупреждение и игнорирует высотные поля.

Местоположение KML placemark в виде строкового скаляра, вектора символов или массива ячеек из символьных векторов, содержащего адресные сведения свободной формы, такие как улица, город, состояние и индекс. Если address массив ячеек, каждая ячейка представляет уникальное местоположение.

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

Аргументы name-value

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

Пример: 'Name','Point Reyes'

Пометьте для объекта отображенный в средстве просмотра в виде строкового скаляра, вектора символов или массива ячеек из символьных векторов. Если вы задаете строковый скаляр или вектор символов, kmlwrite применяет имя ко всем объектам. Если вектор строки или массив ячеек из символьных векторов, необходимо задать имя для каждой функции. Таким образом, массив ячеек должен быть той же длиной как S или address. Следующее описывает поведение по умолчанию для различных функций.

ФункцияИмя по умолчанию
Адрес'Address N' где N является индексом функции.
Точка'Point N' где N является индексом функции.
Многоточечный'Multipoint N' где N является индексом функции. kmlwrite помещает точки в именованную папку, и каждую точку называют 'Point M' где M является индексом точки.
Строка'Line N' где N является индексом функции. Если данные о линии содержат NaN значения, kmlwrite помещает линейные сегменты в папку под названием 'Segment M', где M является номером линейного сегмента.
Многоугольник'Polygon N' где N является индексом функции. Если список вершин многоугольника содержит несколько внешних звонков, kmlwrite помещает, каждый звенит в папке, пометил 'Part M', где M является номером для той функции.

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

Содержимое, которое будет отображено в placemark воздушном шаре описания в виде строкового скаляра или вектора символов, массива ячеек из символьных векторов или спецификации атрибута. kmlwrite использование эти данные, чтобы установить значения тегов описания функции. Описание появляется в воздушном шаре описания, сопоставленном с функцией в Google Earth™.

  • Если вы задаете строковый скаляр или вектор символов, kmlwrite применяет описание ко всем объектам.

  • Если вы задаете вектор строки или массив ячеек из символьных векторов, должна быть одна метка для каждой функции; то есть, это должна быть та же длина как S или address.

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

Если вы обеспечиваете спецификацию атрибута, поля атрибута S отобразитесь как таблица в теге описания placemark для каждого элемента S, в порядке, в котором поля появляются в спецификации. Чтобы создать спецификацию атрибута, вызвать makeattribspec и затем измените выход, чтобы удалить атрибуты или изменить Format поле для одного или нескольких атрибутов. latitude и longitude координаты S не считаются атрибутами. Если включено в спецификацию атрибута, kmlwrite игнорирует их.

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

Имя файла пользовательского значка в виде строкового скаляра, вектора символов или массива ячеек из символьных векторов.

  • Если строковый скаляр или вектор символов, kmlwrite применяет значение ко всем значкам.

  • Если вектор строки или массив ячеек из символьных векторов, задайте значок для каждой функции; то есть, массив ячеек должен быть той же длиной как S или address.

  • Если строковый скаляр или вектор символов являются Интернетом URL, URL должен включать тип протокола.

  • Если имя файла значка не находится в текущей папке, или в папке на пути MATLAB, задайте полное имя или относительный путь.

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

Масштабный коэффициент для значка в виде положительного числового скаляра или вектора.

  • Если скаляр, kmlwrite применяет значение ко всем объектам

  • Если вектор, задайте масштабный коэффициент для каждой функции. Таким образом, массив ячеек должен быть той же длиной как S или address.

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

Цвет значков, линий, или поверхностей и ребер многоугольников в виде одного из этих значений.

  • Название цвета, такое как 'red' или краткое название, такое как 'r'.

  • Триплет RGB, который является трехэлементным вектором-строкой, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Массив ячеек названий цвета, таких как {'red','green','blue'} или {'r','g','b'}.

  • Вектор строки из названий цвета, таких как ["red" "green" "blue"] или ["r" "g" "b"].

  • Матрица A триплетов RGB, которая является матрицей с тремя столбцами, в которой каждой строкой является триплет RGB.

Путем вы указываете, что цвет зависит от схемы требуемого цвета.

  • Чтобы применить тот же цвет ко всем функциям, задайте одно название цвета или триплет RGB.

  • Чтобы применить различный цвет к каждой функции, задайте массив ячеек названий цвета, вектор строки из названий цвета или матрицу триплетов RGB. Количество цветов и триплетов RGB должно совпадать с длиной S или address.

  • Создать многоугольник geoshape без цвета заливки или цвета обводки, задайте 'none'.

  • Чтобы исключить спецификацию цветов для значков или линий, задайте 'none'. В этом случае средство просмотра задает цвет значка или цвет линии.

Обратите внимание на то, что Color задает цвет поверхностей многоугольника и ребер, если вы не задаете FaceColor и EdgeColor.

Эта таблица содержит названия цвета и эквивалентные триплеты RGB для некоторых простых цветов.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

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

Прозрачность значков, линий, или поверхностей и ребер многоугольников в виде числового скаляра или вектора в области значений [0 1]. Если скаляр, kmlwrite применяет значение ко всем функциям. Если вектор, задайте значение для каждой функции; то есть, вектор должен быть той же длиной как S или address. Если S геоформа многоугольника, kmlwrite применяет значение ко всем поверхностям многоугольника если FaceAlpha не задан и ребра многоугольника если EdgeAlpha не задан.

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

Ширина линий и ребер многоугольника в пикселях в виде положительного числового скаляра или вектора.

  • Если скаляр, kmlwrite применяет значение ко всем ребрам многоугольника.

  • Если вектор, задайте значение для каждой функции. Таким образом, вектор должен иметь ту же длину как S.

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

Цвет многоугольника стоит в виде одного из этих значений.

  • Название цвета, такое как 'red' или краткое название, такое как 'r'.

  • Триплет RGB, который является трехэлементным вектором-строкой, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Массив ячеек названий цвета, таких как {'red','green','blue'} или {'r','g','b'}.

  • Вектор строки из названий цвета, таких как ["red" "green" "blue"] или ["r" "g" "b"].

  • Матрица A триплетов RGB, которая является матрицей с тремя столбцами, в которой каждой строкой является триплет RGB.

Путем вы указываете, что цвет зависит от схемы требуемого цвета.

  • Чтобы применить тот же цвет ко всем поверхностям многоугольника, задайте одно название цвета или триплет RGB.

  • Чтобы применить различный цвет к каждой поверхности, задайте массив ячеек названий цвета, вектор строки из названий цвета или матрицу триплетов RGB. Количество цветов и триплетов RGB должно совпадать с длиной S или address.

  • Создать многоугольник geoshape без цвета поверхности задайте 'none'.

Эта таблица содержит названия цвета и эквивалентные триплеты RGB для некоторых простых цветов.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

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

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

  • Если скаляр, kmlwrite применяет значение ко всем поверхностям многоугольника.

  • Если вектор, задайте значение для каждой поверхности многоугольника; то есть, вектор должен быть той же длиной как S или address.

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

Цвет ребер многоугольника в виде одного из этих значений.

  • Название цвета, такое как 'red' или краткое название, такое как 'r'.

  • Триплет RGB, который является трехэлементным вектором-строкой, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Массив ячеек названий цвета, таких как {'red','green','blue'} или {'r','g','b'}.

  • Вектор строки из названий цвета, таких как ["red" "green" "blue"] или ["r" "g" "b"].

  • Матрица A триплетов RGB, которая является матрицей с тремя столбцами, в которой каждой строкой является триплет RGB.

Путем вы указываете, что цвет зависит от схемы требуемого цвета.

  • Чтобы применить тот же цвет к ребрам всех многоугольников, задайте одно название цвета или триплет RGB.

  • Чтобы применить цвет другого края для каждого многоугольника, задайте массив ячеек названий цвета, вектор строки из названий цвета или матрицу триплетов RGB. Количество цветов и триплетов RGB должно совпадать с длиной S или address.

  • Создать многоугольник geoshape без цвета обводки задайте 'none'.

Эта таблица содержит названия цвета и эквивалентные триплеты RGB для некоторых простых цветов.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

Sample of the color red

'green''g'[0 1 0]

Sample of the color green

'blue''b'[0 0 1]

Sample of the color blue

'cyan' 'c'[0 1 1]

Sample of the color cyan

'magenta''m'[1 0 1]

Sample of the color magenta

'yellow''y'[1 1 0]

Sample of the color yellow

'black''k'[0 0 0]

Sample of the color black

'white''w'[1 1 1]

Sample of the color white

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

Прозрачность ребер многоугольника в виде числового скаляра или вектора.

  • Если скаляр, kmlwrite применяет значение ко всем ребрам многоугольника.

  • Если вектор, y задает значение для каждого ребра многоугольника; то есть, вектор должен быть той же длиной как S. Если вы не задаете EdgeAlpha, kmlwrite использует значение Alpha, если задано. Если вы не задаете ни одно значение, kmlwrite использует значение по умолчанию 1 (полностью непрозрачный).

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

Соедините многоугольник с землей в виде логического или числового скаляра, true(1 ) или false(0 ), или вектор. Если скаляр, значения применяются ко всем многоугольникам. Если вектор, задайте значение для каждого многоугольника; то есть, вектор должен быть той же длиной как S или address.

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

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

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

Меридиан, где части многоугольника сокращаются в виде числового скаляра.

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

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

ЗначениеОписание
'clampToGround'Проигнорируйте высотные значения и установите функцию на земле. Это - интерпретация по умолчанию, когда вы не задаете высотные значения.
'relativeToGround'Установите высотные значения относительно фактического наземного вертикального изменения конкретной функции
'relativeToSeaLevel'Установите высотные значения относительно уровня моря, независимо от фактических значений вертикального изменения ландшафта ниже функции. (Названный 'absolute' в спецификации KML.) Это - интерпретация по умолчанию, когда вы задаете высотные значения.

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

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

PropertyName ОписаниеТип данных
LatitudeШирота объекта камера смотрит на в градусахСкаляр дважды, от-90 до 90
LongitudeДолгота объекта камера смотрит на в градусахСкаляр дважды, от −180 до 180
AltitudeВысота объекта камера смотрит на от поверхности Земли в метрахЧисловой скаляр
HeadingНаправление камеры (азимут), в градусах (дополнительный) Скалярный числовой [0 360], 0 по умолчанию (истинный Север)
TiltУгол между направлением LookAt положение и нормальное на поверхность Земли, в градусах (дополнительной) Скалярный числовой [0 90], 0 по умолчанию (непосредственно выше)
RangeРасстояние в метрах от объекта задано latitude, longitude, и altitude к местоположению камеры.Скалярный числовой, 0 по умолчанию
AltitudeModeИнтерпретация высотного (дополнительного) значения камеры'relativeToSeaLevel', 'clampToGround', 'relativeToGround' (по умолчанию)

Положение виртуальной камеры (глаз) относительно поверхности Земли в виде вектора геоточки. Поля вектора геоточки, описанного ниже, задают представление. Camera обеспечивает полные шесть управления степенями свободы представлением, таким образом, можно позиционировать камеру на пробеле и затем вращать его вокруг x-, y- и осей z-. Можно наклонить поле зрения камеры так, чтобы вы изучили выше горизонта небо.

PropertyName ОписаниеТип данных
LatitudeШирота виртуальной камеры (глаз), в градусахСкаляр дважды, в области значений [-90 90]
LongitudeДолгота виртуальной камеры, в градусахСкаляр дважды, в области значений [-180 180].
AltitudeРасстояние виртуальной камеры от поверхности Земли, в метрахЧисловой скаляр
HeadingНаправление (азимут), в градусах (дополнительный) Скалярный числовой [0 360], 0 по умолчанию (истинный Север)
TiltВращение камеры вокруг Оси X, в градусах (дополнительной) Скалярный числовой [0 180], 0 по умолчанию (непосредственно выше)
RollВращение камеры в градусах вокруг (дополнительной) оси Z Числовой скаляр, в области значений [-180 180], 0 по умолчанию
AltitudeModeЗадает, как высота камеры интерпретирована (дополнительная) 'relativeToSeaLevel', 'clampToGround', 'relativeToGround' (значение по умолчанию)

Советы

  • Можно просмотреть файлы KML с браузером Google Earth, который должен быть установлен на компьютере.

    Для Windows используйте winopen функция:

    winopen(filename)
    

    Для Linux, если имя файла является частичным путем, используют следующие команды:

    cmd = 'googleearth ';
    fullfilename = fullfile(pwd, filename);   
    system([cmd fullfilename])
    

    Для Mac, если имя файла является частичным путем, используют следующие команды:

    cmd = 'open -a Google\ Earth '
    fullfilename = fullfile(pwd, filename);   
    system([cmd fullfilename])
    
  • Вы можете также файлы представления KML с браузером Google Maps™. Файл должен быть расположен на веб-сервере, который доступен из Интернета. Частный сервер интранет не будет достаточен, потому что сервер Google должен смочь получить доступ к URL, который вы обеспечиваете. Следующее является шаблоном для использования Google Maps. Замените your-web-server-path с вещественным значением.

    GMAPS_URL = 'http://maps.google.com/maps?q=';
    KML_URL = 'http://your-web-server-path';
    web([GMAPS_URL KML_URL])
    
Представленный в R2007b
Для просмотра документации необходимо авторизоваться на сайте