kmlwrite

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

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

  • kmlwrite(filename,lat,lon)

  • kmlwrite(filename,lat,lon,alt)

Синтаксис

kmlwrite(filename,S)
kmlwrite(filename,address)
kmlwrite(___,Name,Value)

Описание

пример

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', 'line' или '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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 | логический

Сократите части полигона, заданные в виде логического или числа 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