kmlwrite

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

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

  • kmlwrite(filename,lat,lon)

  • kmlwrite(filename,lat,lon,alt)

Описание

пример

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

пример

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

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

Примеры

свернуть все

Возвратите данные о точке в векторе геоточки.

placenames = gpxread('boston_placenames');

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

filename = 'Boston_Placenames.kml';

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

colors = jet(length(placenames));

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

kmlwrite(filename, placenames, 'Name', placenames.Name,'Color',colors );

Считайте функции линии в вектор геоформы.

tracks = gpxread('sample_tracks', 'Index', 1:2);

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

filename = 'tracks.kml';

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

colors = {'red', 'green'};
description = tracks.Metadata.Name;
name = {'track1', 'track2'};

kmlwrite(filename, tracks, 'Color', colors, 'LineWidth', 2, ...
         'Description', description, 'Name', name);

Считайте географические данные (районы крупнейших европейских городов) из файла форм, включая имена городов. Это возвращает структуру.

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

Преобразуйте структуру в вектор геоточки.

cities = geopoint(cities);

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

filename = 'European_Cities.kml';

Запишите географические данные в файл KML. Используйте дополнительный параметр Имени, чтобы включать имена городов в placemarks. Удалите таблицу Description по умолчанию.

kmlwrite(filename, cities, 'Name', cities.Name, 'Description',{});

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

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

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

filename = 'Australian_Cities.kml';

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

kmlwrite(filename, address, 'Name', address);

Считайте данные о многоугольнике из файла, возвращенного в структуре.

S = shaperead('usastatelo','UseGeoCoords',true);

Преобразуйте структуру в вектор геоформы.

S = geoshape(S);

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

filename = 'usastatelo.kml';
colors = polcmap(length(S));
kmlwrite(filename,S,'Name',S.Name,'FaceColor',colors,'EdgeColor','k')

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

свернуть все

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

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

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

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

  • Если S геоstruct с X и Y поля, kmlwrite возвращает ошибку.

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

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

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

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

Задайте дополнительные разделенные запятой пары 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 применяет описание ко всем объектам.

  • Если вы задаете вектор строки или массив ячеек из символьных векторов, должна быть одна метка для каждой функции; то есть, это должна быть та же длина asS или 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

Цвет значков, линий, или поверхностей и ребер многоугольников, заданных как Спецификация цветов MATLAB (ColorSpec), который может быть вектором символов, массивом ячеек или double массив со значениями в области значений [0 1].

  • Если скаляр строки или вектор символов, kmlwrite применяет цвет ко всем функциям

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

  • Если double массив, задайте M-by-3 массив, где M является той же длиной как S или address.

  • Если S геоформа многоугольника, можно задать 'none', который указывает, что многоугольник не заполнен и не имеет никакого ребра. Кроме того, для многоугольников, Color задает цвет поверхностей многоугольника если FaceColor не задан и ребра многоугольника если EdgeColor не задан.

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

Прозрачность значков, линий, или поверхностей и ребер многоугольников, заданных в виде числа или вектора в области значений [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

Цвет ребер многоугольника, заданных как Спецификация цветов MATLAB (ColorSpec). Спецификация цветов может быть вектором символов, массивом ячеек или векторами символов или double массив со значениями в range[0 1]. Если вектор символов, kmlwrite применяет значение ко всем поверхностям. Если массив ячеек из символьных векторов, задайте значение для каждой поверхности. Таким образом, массив ячеек должен быть той же длиной как S или address. Если значение является числовым массивом, это - размер M-by-3, где M является длиной S или address. Если S геоформа многоугольника, можно задать значение 'none' указать, что многоугольник не имеет никакой схемы.

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

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

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

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

Цвет ребер многоугольника, заданных как Спецификация цветов MATLAB (ColorSpec). Спецификация цветов может быть вектором символов, массивом ячеек из символьных векторов или double массив со значениями в области значений [0 1].

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

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

  • Если вы задаете double массив, размером должен быть M-by-3, где M является длиной S.

Значение 'none' указывает, что многоугольники не имеют никаких ребер.

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

  • Если скаляр, 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