kmlwriteline

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

Описание

пример

kmlwriteline(filename,latitude,longitude) пишут географические данные о линии, заданные latitude и longitude к файлу, заданному filename в формате Языка разметки замочной скважины (KML). kmlwriteline создает KML Placemark элемент для каждой линии, с помощью значений широты и долготы в качестве координат точек, которые задают линию. kmlwriteline устанавливает высотные значения, сопоставленные с линией к 0 и устанавливает высотную интерпретацию на 'clampToGround'.

kmlwriteline(filename,latitude,longitude,altitude) использует значения latitude, longitude, и altitude установить координаты точек, которые задают линию. Когда вы задаете высотное значение, kmlwriteline устанавливает AltitudeMode припишите 'relativeToSeaLevel'.

пример

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

Примеры

свернуть все

Загрузите географические данные, описывающие береговые линии.

load coastlines 

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

 filename = 'coastlines.kml';

Запишите данные о линии в файл, задав цвет и ширину линии.

kmlwriteline(filename, coastlat, coastlon, 'Color','black', ...
       'LineWidth', 3);

Считайте журнал дорожки из файла GPX. gpxread возвращает данные как вектор геоточки.

points = gpxread('sample_tracks');

Получите широту, долготу и высотные значения из данных.

lat = points.Latitude;
lon = points.Longitude;
alt = points.Elevation;

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

filename = 'track.kml';

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

kmlwriteline(filename,lat, lon, alt, ...
       'Description', points.Metadata.Name, 'Name', 'Track Log');

Считайте данные о дорожке в вектор геоточки.

cities = geopoint(shaperead('worldcities','UseGeoCoords',true));

Получите широту, долготу и высотные значения из данных. Пример использует Лондон и Нью-Йорк.

city1 = 'London';
city2 = 'New York';
pt1 = cities(strcmp(city1,cities.Name));
pt2 = cities(strcmp(city2,cities.Name));
lat1 = pt1.Latitude;
lon1 = pt1.Longitude;
lat2 = pt2.Latitude;    
lon2 = pt2.Longitude;
nlegs = 20;
[lat,lon] = gcwaypts(lat1,lon1,lat2,lon2,nlegs);
midpoint = nlegs/2;
altscale = 5000;
alt = [0:midpoint midpoint-1:-1:0] * altscale;

Задайте представление с помощью LookAt значения параметров.

lookLat = 49.155804;
lookLon = -56.698494;
lookAt = geopoint(lookLat, lookLon);
lookAt.Range = 2060400;
lookAt.Heading = 10;
lookAt.Tilt = 70;

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

width = 4;
filename1 = 'altitudetrack.kml';
kmlwriteline(filename1,lat,lon,alt,'Color','k','LineWidth',width)

filename2 = 'groundtrack.kml';
kmlwriteline(filename2,lat,lon,alt,'Color','w','LineWidth',width, ...
       'LookAt',lookAt,'AltitudeMode','clampToGround')

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

свернуть все

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

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

Широты точек, которые задают линию, заданную как вектор в области значений [-90 90].

Типы данных: single | double

Долготы точек, которые задают линию, заданную как вектор. Значения долготы автоматически переносят к области значений [-180, 180].

Типы данных: single | double

Высота точек, которые задают линию, заданную как скаляр или вектор. Единица измерения является метрами.

  • Если скаляр, kmlwriteline применяет значение к каждой точке.

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

Типы данных: single | double

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

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

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

Метка линии отображена в средстве просмотра, заданном как скаляр строки или вектор символов.

Если линия содержит NaN значения, kmlwriteline помещает линейные сегменты в папке пометили 'Line 1'. kmlwriteline помечает линейные сегменты 'Segment N', где N значение индекса линейного сегмента.

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

Содержимое, которое будет отображено в воздушном шаре описания линии, заданном как скаляр строки или вектор символов. Описание появляется в воздушном шаре описания, когда пользователь кликает или по имени функции в панели Гугл Ерс-Плэйсез или по линии в окне средства просмотра.

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

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

Цвет линии, заданной как MATLAB® Color Specification (ColorSpec). Можно задать вектор символов, скалярный массив ячеек или числовой вектор со значениями в области значений [0 1].

  • Если вы задаете вектор символов, значение задает имя цвета (см. ColorSpec). Если вы задаете 'none', или не задавайте этот параметр, kmwriteline не включает спецификацию цветов в файл и оставляет выбор цветов до средства просмотра.

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

  • Если вы задаете числовой массив, это должно быть 1 3 вектор класса double.

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

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

Ширина линии в пикселях, заданных в виде положительного числа. Если вы не задаете ширину, kmlwriteline не включает информацию о ширине в файл, и средство просмотра задает ширину линии.

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

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

ЗначениеОписание
'clampToGround'Проигнорируйте высотные значения и установите функцию на земле. Интерпретация по умолчанию, когда вы не задаете altitude значения.
'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 обеспечивает полные 6 управления степенями свободы представлением, таким образом, можно позиционировать камеру на пробеле и затем вращать его вокруг 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' (значение по умолчанию)

Советы

  • Если вы не видите свою линию, установите AltitudeMode к 'clampToGround'. Если линия появляется, то у вас может быть проблема с вашим высотным значением.

  • Можно просмотреть файлы 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])
    

Смотрите также

| | |

Введенный в R2013a