exponenta event banner

kmlwritepoint

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

Определите точку по широте и долготе.

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 параметр для включения имен городов в метку placemarks.

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

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

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

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

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)

Укажите значения широты и долготы, определяющие точку, которую требуется просмотреть. В этом примере местоположение - гора Ренье.

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» или в точке окна просмотра.

  • Если строковый скалярный или символьный вектор, 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Долгота точки, на которую смотрит камера, в градусах, указывающая угловое расстояние относительно первичного меридианаСкалярный двойной, в диапазоне [-180 180]. Значения к западу от меридиана находятся в диапазоне от -180 до 0 градусов. Значения к востоку от меридиана находятся в диапазоне от 0 до 180 градусов
AltitudeВысота точки, на которую смотрит камера с поверхности Земли, в метрахСкалярное число, по умолчанию 0
HeadingНаправление камеры (азимут), в градусах (необязательно) Скалярный числовой [0 360], по умолчанию 0 (true North)
TiltУгол между направлением положения LookAt и нормалью к поверхности земли, в градусах (необязательно) Скалярный числовой [0 90], по умолчанию: 0, непосредственно выше.
RangeРасстояние в метрах от точки, указанной latitude, longitude, и altitude до точки расположения камеры -LookAt позиция.Скалярный числовой, по умолчанию: 0
AltitudeModeИнтерпретация значения высоты камеры (дополнительно) 'relativeToSeaLevel', 'clampToGround', (по умолчанию) 'relativeToGround'

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

Имя свойстваОписаниеТип данных
LatitudeШирота виртуальной камеры (глаза), в градусах к северу или югу от экватора (0 градусов)Скалярный двойной в диапазоне [-90 90]
LongitudeДолгота виртуальной камеры в градусах, определяющая угловое расстояние относительно первичного меридианаСкалярный двойной, в диапазоне [-180 180]. Значения к западу от меридиана находятся в диапазоне от -180 до 0 градусов. Значения к востоку от меридиана находятся в диапазоне от 0 до 180 градусов
AltitudeРасстояние виртуальной камеры от поверхности Земли, в метрахСкалярный числовой
HeadingНаправление (азимут) в градусах (необязательно) Скалярный числовой [0 360], по умолчанию 0 (true North)
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