Запись географических данных в файл KML
Следующие синтаксисы, хотя и поддерживаются, не рекомендуются. Использовать kmlwritepoint вместо этого.
kmlwrite(filename,lat,lon)
kmlwrite(filename,lat,lon,alt)
kmlwrite( пишет filename,address)address в файл, указанный filename в формате KML. address - строковый скалярный или символьный вектор, содержащий данные адреса произвольной формы, которые могут включать в себя улицу, город, штат, страну и/или почтовый индекс. Чтобы указать несколько адресов, используйте массив ячеек из векторов символов или строковых скаляров. kmlwrite создает в файле метку Placemark KML, задающую значение тега адреса. Адрес является альтернативным способом указания точки вместо использования широты и долготы.
kmlwrite(___, задает пары «имя-значение», которые задают дополнительные свойства элемента KML. Имена параметров могут быть сокращенными и не учитывать регистр.Name,Value)
Возвращаемые данные точек в векторе геопоинтов.
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. Используйте необязательный параметр Name, чтобы включить имена городов в метки placemarks. Удалите таблицу Описание по умолчанию.
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')
filename - Имя выходного файлаИмя выходного файла, указанного как строковый скалярный или символьный вектор. kmlwrite записывает файл в текущую папку, если не указано полное или относительное имя пути. Если имя файла включает расширение, оно должно быть .kml.
Типы данных: char | string
S - Географические особенности для записи в файлГеографические элементы для записи в файл, указанные как вектор геопоинт, вектор геошейп или геострукт. Поля атрибутов S отображаются в виде таблицы в теге Description метки Placemark для каждого элемента S. Поля атрибутов отображаются в таблице в том же порядке, что и в S.
Если S - вектор геошапы, Geometry определяет тип данных: 'point', 'line', или 'polygon'.
Если S является геоструктом с X и Y поля, kmlwrite возвращает ошибку.
Если S содержит допустимые данные высоты, kmlwrite записывает значения полей в файл как высоты KML и устанавливает интерпретацию высоты как 'relativeToSeaLevel'. Если S не содержит данных о высоте, kmlwrite устанавливает в поле высоты в файле значение 0 и устанавливает интерпретацию высоты как 'clampToGround'. Данные о высоте могут находиться в поле с именем Elevation, Altitude, или Height. Если S содержит поля с несколькими именами, kmlwrite выдает предупреждение и игнорирует поля высоты.
address - Расположение информационной метки KMLМестоположение метки-заполнителя KML, заданного как строковый скаляр, символьный вектор или массив ячеек символьных векторов, содержащих данные адреса произвольной формы, такие как улица, город, штат и почтовый индекс. Если address является массивом ячеек, каждая ячейка представляет уникальное местоположение.
Типы данных: char | string | cell
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Name','Point Reyes''Name' - Метка объекта, отображаемого в средстве просмотра'Address N', 'Point N', 'Line N', или 'Polygon N', где N - индекс элемента. (по умолчанию) | строковый скаляр | символьный вектор | массив ячеек символьных векторовМетка для объекта, отображаемого в средстве просмотра, заданная как строковый скаляр, символьный вектор или массив ячеек символьных векторов. Если указать строковый скалярный или символьный вектор, 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
'Description' - Содержимое, отображаемое в позиции описания меткиСодержимое, отображаемое в позиции описания метки-заполнителя, указанное как строковый скалярный или символьный вектор, массив ячеек векторов символов или спецификация атрибута. kmlwrite использует эти данные для установки значений тегов описания элемента. Описание отображается в позиции описания, связанной с функцией в Google Earth.
Если указать строковый скалярный или символьный вектор, kmlwrite применяет описание ко всем объектам.
Если указан строковый вектор или массив ячеек символьных векторов, для каждого элемента должна быть одна метка; то есть она должна быть той же длины, что иS или address.
Элементы описания могут быть как обычным текстом, так и тегами с разметкой HTML. При использовании обычного текста Google Earth автоматически применяет базовое форматирование HTML. Например, Google Earth заменяет новые строки тегами разрыва строки и заключает действительные URL-адреса в теги привязки, чтобы сделать их гиперссылками. Чтобы просмотреть примеры HTML-тегов, распознаваемых Google Earth, просмотрите https://earth.google.com.
Если вы предоставляете спецификацию атрибута, поля атрибутов S отображаются в виде таблицы в теге описания метки для каждого элемента S, в порядке отображения полей в спецификации. Чтобы создать спецификацию атрибута, вызовите makeattribspec а затем измените выходные данные, чтобы удалить атрибуты или изменить Format для одного или нескольких атрибутов. latitude и longitude координаты S не считаются атрибутами. Если включено в спецификацию атрибута, kmlwrite игнорирует их.
Типы данных: char | string | cell
'Icon' - Имя файла пользовательского значкаИмя файла пользовательского значка, заданного как строковый скаляр, символьный вектор или массив ячеек символьных векторов.
Если строковый скалярный или символьный вектор, kmlwrite применяет значение ко всем значкам.
Если строковый вектор или массив ячеек символьных векторов, укажите значок для каждого элемента; то есть массив ячеек должен иметь ту же длину, что и S или address.
Если строковый скалярный или символьный вектор является URL-адресом Интернета, URL-адрес должен включать тип протокола.
Если имя файла значка находится не в текущей папке или в папке на пути MATLAB, укажите полное или относительное имя пути.
Типы данных: char | string | cell
'IconScale' - Коэффициент масштабирования для значкаКоэффициент масштабирования значка, заданный как положительный числовой скаляр или вектор.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32
'Color' - Цвет значков, линий или граней и кромок многоугольниковЦвет значков, линий или граней и кромок многоугольников, заданный как спецификация цвета MATLAB (ColorSpec), который может быть символьным вектором, массивом ячеек или double массив со значениями в диапазоне [0 1].
Если строковый скалярный или символьный вектор, kmlwrite применяет цвет ко всем элементам
Если строковый вектор или массив ячеек символьных векторов, укажите цвет для каждого элемента. То есть, массив ячеек должен быть той же длины, что и S или address.
Если double массив, укажите M-by-3 массив, где M - такая же длина, как S или address.
Если S является многоугольным геошапом, можно указать 'none', что указывает на то, что многоугольник не заполнен и не имеет кромки. Кроме того, для многоугольников Color задает цвет граней полигона, если FaceColor не указан, и кромки многоугольников, если EdgeColor не указан.
Типы данных: double | char | cell
'Alpha' - Прозрачность значков, линий или граней и кромок многоугольников1 (полностью непрозрачный) (по умолчанию) | числовой скаляр или вектор в диапазоне [0 1]Прозрачность значков, линий или граней и кромок многоугольников, заданная как числовой скаляр или вектор в диапазоне [0 1]. Если скаляр, kmlwrite применяет значение ко всем элементам. Если вектор, укажите значение для каждого элемента; то есть вектор должен быть той же длины, что и S или address. Если S - многоугольный геошейп, kmlwrite применяет значение ко всем граням многоугольника, если FaceAlpha не указан, и кромки многоугольника, если EdgeAlpha не указан.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32
'LineWidth' - Ширина линий и кромок многоугольника в пикселяхШирина линий и кромок многоугольника в пикселях, заданная как положительный числовой скаляр или вектор.
Если скаляр, kmlwrite применяет значение ко всем кромкам многоугольника.
Если вектор, укажите значение для каждого элемента. То есть вектор должен иметь ту же длину, что и S.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32
'FaceColor' - Цвет граней полигона'none'Цвет кромок многоугольника, заданный как спецификация цвета MATLAB (ColorSpec). Спецификация цвета может быть символьным вектором, массивом ячеек или символьными векторами или double массив со значениями в диапазоне[0 1]. Если символьный вектор, kmlwrite применяет значение ко всем граням. Если массив ячеек содержит векторы символов, укажите значение для каждой грани. То есть, массив ячеек должен быть той же длины, что и S или address. Если значение является числовым массивом, это размер M-by-3 где M - длина S или address. Если S является многоугольным геошапом, можно указать значение 'none' указывает, что многоугольник не имеет контура.
'FaceAlpha' - Прозрачность граней полигона1 (полностью непрозрачный) (по умолчанию) | числовой скаляр или вектор в диапазоне [0 1]Прозрачность граней многоугольника, заданная как числовой скаляр или вектор в диапазоне [0 1].
Если скаляр, kmlwrite применяет значение ко всем граням многоугольника.
Если вектор, укажите значение для каждой грани многоугольника; то есть вектор должен быть той же длины, что и S или address.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32
'EdgeColor' - Цвет кромок полигона'none'Цвет кромок многоугольника, заданный как спецификация цвета MATLAB (ColorSpec). Спецификация цвета может быть символьным вектором, массивом ячеек символьных векторов или double массив со значениями в диапазоне [0 1].
Если скаляр, kmlwrite применяет значение ко всем кромкам многоугольника.
Если вектор, укажите значение для каждой кромки многоугольника; то есть вектор должен быть той же длины, что и S.
Если указать double массив, размер должен быть M-by-3, где M - длина S.
Значение 'none' указывает, что у многоугольников нет кромок.
'EdgeAlpha' - Прозрачность кромок полигона1 (полностью непрозрачный) (по умолчанию) | числовой скаляр или вектор в диапазоне [0 1]Прозрачность ребер многоугольника, заданная как числовой скаляр или вектор.
Если скаляр, kmlwrite применяет значение ко всем кромкам многоугольника.
Если вектор, y задает значение для каждой кромки многоугольника; то есть вектор должен быть той же длины, что и S. Если не указать EdgeAlpha, kmlwrite использует значение Alpha, если указано. Если не указано ни одно из значений, kmlwrite использует значение по умолчанию 1 (полностью непрозрачный).
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32
'Extrude' - Подсоединить полигоны к землеfalse (по умолчанию) | true | логический или числовой скаляр | логический или числовой векторСоедините многоугольник с землей, указанный как логический или числовой скаляр, true (1) или false (0), или вектор. Если скаляр, значения применяются ко всем многоугольникам. Если вектор, укажите значение для каждого многоугольника; то есть вектор должен быть той же длины, что и S или address.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
'CutPolygons' - Вырезать многоугольникиtrue (по умолчанию) | falseВырезать многоугольники, заданные как логический или числовой скаляр true (1) или false (0). Если true, kmlwrite вырезает детали многоугольника в PolygonCutMeridian значение. Если trueи части многоугольника требуют разрезания, kmlwrite возвращает ошибку, если значения высоты неравномерны.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | logical
'PolygonCutMeridian' - Меридиан, в котором вырезаются многоугольники180 (по умолчанию) | скалярный числовойМеридиан, где многоугольники вырезаются, задается как скалярное число.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32
'AltitudeMode' - Интерпретация значений высоты'clampToGround' | 'relativeToGround' | 'relativeToSeaLevel'Интерпретация значений высоты, указанных как одно из следующих значений:
| Стоимость | Описание |
|---|---|
'clampToGround' | Игнорируйте значения высоты и устанавливайте функцию на земле. Это интерпретация по умолчанию, если значения высоты не указаны. |
'relativeToGround' | Установка значений высоты относительно фактической отметки земли конкретного элемента |
'relativeToSeaLevel' | Установите значения высот относительно уровня моря, независимо от фактических значений высот местности под элементом. (Имя 'absolute' в спецификации KML.) Эта интерпретация используется по умолчанию при определении значений высоты. |
Типы данных: char | string
'LookAt' - Положение виртуальной камеры (глаза) относительно просматриваемого объектаПоложение виртуальной камеры (глаза) относительно просматриваемого объекта, определяемое как вектор геопоинта. Вид определяется полями вектора географической точки, перечисленными ниже. LookAt ограничивается просмотром элемента вниз. Чтобы наклонить виртуальную камеру, чтобы смотреть над горизонтом в небо, используйте Camera параметр.
| Имя свойства | Описание | Тип данных |
|---|---|---|
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' - Положение виртуальной камеры относительно поверхности Земли Положение виртуальной камеры (глаза) относительно поверхности Земли, определяемое как вектор геопоинт. Вид определяется полями вектора географической точки, перечисленными ниже. Camera обеспечивает полный контроль шести степеней свободы над видом, чтобы можно было разместить камеру в пространстве, а затем повернуть ее вокруг осей x, y и z. Вы можете наклонить вид камеры так, чтобы смотреть над горизонтом в небо.
| Имя свойства | Описание | Тип данных |
|---|---|---|
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])
kmlwriteline | kmlwritepoint | kmlwritepolygon | makeattribspec | shapewrite
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.