kmlwritepoint

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

Задайте точку по широте и долготе.

lat =  42.299827;
lon = -71.350273;

Укажите текст описания, используемый с макетом, включая HTML для форматирования.

description = sprintf('%s<br>%s</br><br>%s</br>', ...
       '3 Apple Hill Drive', 'Natick, MA. 01760', ...
       'https://www.mathworks.com');
name = 'The MathWorks, Inc.';
iconDir = fullfile(matlabroot,'toolbox','matlab','icons');
iconFilename = fullfile(iconDir, 'matlabicon.gif');

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

filename = 'MathWorks.kml';

Запись данных в файл KML с помощью Description параметр для включения имен городов в надписи.

kmlwritepoint(filename, lat, lon, ...
       'Description', description, 'Name', name, 'Icon', iconFilename);

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

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

Получите широты, долготы и имена городов от геоstruct.

lat = [cities.Lat];
lon = [cities.Lon];
name = {cities.Name};

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

filename = 'European_Cities.kml';

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

kmlwritepoint(filename, lat, lon, 'Name', name, 'IconScale', 2);

Создайте геоточку, чтобы задать опции просмотра, доступные через Camera параметр. Пример устанавливает вид на монумент Вашингтону в Вашингтоне

camlat = 38.889301;
camlon = -77.039731;
camera = geopoint(camlat,camlon);
camera.Altitude = 500;
camera.Heading = 90;
camera.Tilt = 45;
camera.Roll = 0;
name = 'Camera ground location';

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

filename = 'WashingtonMonument.kml';

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

lat = camera.Latitude;
lon = camera.Longitude;
kmlwritepoint(filename,lat,lon,'Camera',camera,'Name',name);

Задайте значения широты, долготы и высоты, которые задают точку. В этом примере местом расположения являются руины Мачу-Пикчу в Перу.

lat = -13.163111;
lon = -72.544945;
alt = 2430;

Создайте геоточку, чтобы задать опции просмотра, доступные через LookAt параметр.

lookAt = geopoint(lat,lon);
lookAt.Range = 1500;
lookAt.Heading = 260;
lookAt.Tilt = 67;
name = 'LookAt location parameters';

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

filename = 'Machu_Picchu.kml';

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

kmlwritepoint(filename,lat,lon,alt,'Name',name,'LookAt',lookAt)

Задайте значения широты и долготы, которые определяют точку, которую вы хотите просмотреть. В этом примере местоположение является Mount Rainier.

lat_rainier = 46.8533;
lon_rainier = -121.7599;

Создайте геоточку, чтобы задать положение виртуальной камеры (глаза), которую вы будете использовать для просмотра местоположения с помощью Camera параметр.

myview = geopoint(46.7, -121.7,'Altitude',2500,'Tilt',85,'Heading',345);

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

filename = 'Mt_Rainier.kml';

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

kmlwritepoint(filename,lat_rainier,lon_rainier,'Name','Mt Rainier',...
         'Color','red','IconScale',2,'Camera',myview)

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Пример: kmlwritepoint(filename,lat,lon,'Name','Point Reyes','IconScale',2);

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

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

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

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

Содержимое, отображаемое в номере позиции описания точек в виде строкового скаляра или вектора символов или массива ячеек векторов символов. Содержимое появляется в номере позиции описания, если щелкнуть имя функции на панели Google Earth Places или точку в окне средства просмотра.

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

  • Если строковые массивы или массив ячеек векторов символов, необходимо включать информацию о описании для каждой точки; то есть массив ячеек должен быть такой же длины, как и latitude и longitude.

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

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

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

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

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

Если имя файла значка отсутствует в текущей папке или в папке на пути MATLAB, необходимо указать полное или относительное имя пути. Если имя файла является URL-адресом Интернета, URL-адрес должен содержать тип протокола.

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

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

  • Если скаляр, kmlwritepoint применяет коэффициент масштабирования к значку для всех точек.

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

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

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

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

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

  • Если массив, это должен быть массив M -by-3, где M - длина latitude и longitude.

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

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

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

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

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

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

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

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

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

Положение камеры относительно поверхности Земли, заданное как вектор- геоточка. Поля геоточки, перечисленные ниже, определяют представление Camera. обеспечивает полный контроль над видом с шестью степенями свободы, поэтому можно расположить камеру в пространстве и затем повернуть ее вокруг X, Y и Z осей. Вы можете наклонить поле зрения камеры так, чтобы вы смотрели над горизонтом в небо.

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

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

Совет

  • Просмотреть файлы 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