Запись географических данных в файл KML
Следующие синтаксисы, хотя они все еще поддерживаются, не рекомендованы. Использовать kmlwritepoint
вместо этого.
kmlwrite(filename,lat,lon)
kmlwrite(filename,lat,lon,alt)
kmlwrite(
пишет filename
,address
)address
в файл, заданный как filename
в формате KML. address
- строковый скаляр или вектор символов, содержащий бесплатные адресные данные, которые могут включать в себя улицу, город, состояние, страну и/или почтовые коды. Чтобы задать несколько адресов, используйте массив ячеек из векторов символов или строковых скаляров. kmlwrite
создает в файле KML Placemark, задавая значение тега адреса. Адрес является альтернативным способом задать точку, вместо использования широты и долготы.
kmlwrite(___,
задает пары "имя-значение", которые задают дополнительные свойства функции. Имена параметров могут быть сокращены и не чувствительны к регистру.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. Используйте необязательный параметр «Имя», чтобы включить имена городов в макетные знаки. Удалите таблицу Описание по умолчанию.
kmlwrite(filename, cities, 'Name', cities.Name, 'Description',{});
Создайте массив ячеек из неструктурированных адресов (имена нескольких австралийских городов).
address = {'Perth, Australia', ... 'Melbourne, Australia', ... 'Sydney, Australia'};
Определите имя файла KML, который вы хотите создать.
filename = 'Australian_Cities.kml';
Запись неструктурированных адресных данных в файл KML с помощью дополнительного Name
параметр для включения имен городов в надписи.
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
- Географические функции для записи в файлГеографические функции для записи в файл, заданные как геоточка, вектор геосхемы или геоstruct. Поля атрибутов 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
поле для одного или нескольких атрибутов. The 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
.
Если a 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.