geopolyshape

Многоугольник в географических координатах

Описание

geopolyshape объект представляет многоугольник или мультимногоугольник в географических координатах. polygon является областью, ограниченной замкнутой кривой, и может включать внутренние отверстия. multipolygon является отдельной формой многоугольника, которая включает несколько непересекающихся областей.

Чтобы представлять многоугольник или мультимногоугольник в плоских координатах, используйте mappolyshape объект вместо этого.

Создание

Создать geopolyshape объекты, также:

  • Импортируйте данные о многоугольнике в географических координатах как геопространственная таблица с помощью readgeotable функция, и затем запрашивает Shape переменная таблицы.

  • Используйте geopolyshape функция (описанный здесь).

Описание

пример

shape = geopolyshape(lat,lon) создает geopolyshape объект или массив geopolyshape объекты с вершинами в заданных координатах широты и долготы. Размеры latlon , и geopolyshape объектный массив shape соответствие.

geopolyshape функция принимает тот lat и lon задайте многоугольники с допустимой топологией. Многоугольник имеет допустимую топологию когда:

  • Внутренние части области направо, когда вы прослеживаете контуры от вершины до вершины.

  • Контуры не имеют никаких самопересечений.

В общем случае внешние границы многоугольников с допустимой топологией имеют вершины в по часовой стрелке, порядок и внутренние отверстия имеют вершины в против часовой стрелки порядок.

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

развернуть все

Широта координирует в виде числового вектора или массива ячеек числовых векторов.

  • Создайте многоугольник путем определения вектора, такого как [39 45 19 39].

  • Создайте многоугольник с отверстиями или мультимногоугольник путем определения вектора и включая пропуски между контурами отверстия и области как NaN значения, такие как [37 46 31 20 37 NaN 45 49 35 32 45 NaN 35 40 42 35].

  • Создайте массив многоугольников и мультимногоугольников путем определения массива ячеек векторов, таких как {[37 46 31 20 37],[45 49 35 32 45 NaN 35 40 42 35]}.

NaN значения в lat должен соответствовать NaN значения в lon.

Размер lat должен совпадать с размером lon. Для массивов ячеек, размера вектора в каждой ячейке lat должен совпадать с размером вектора в соответствующей ячейке lon.

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

Долгота координирует в виде числового вектора или массива ячеек числовых векторов.

  • Создайте многоугольник путем определения вектора, такого как [-113 -49 -100 -113].

  • Создайте многоугольник с отверстиями или мультимногоугольник путем определения вектора и включая пропуски между контурами отверстия и области как NaN значения, такие как [69 90 105 79 69 NaN 6 52 43 14 6 NaN 18 32 22 18].

  • Создайте массив многоугольников и мультимногоугольников путем определения массива ячеек векторов, таких как {[69 90 105 79 69],[6 52 43 14 6 NaN 18 32 22 18]}.

NaN значения в lat должен соответствовать NaN значения в lon.

Размер lat должен совпадать с размером lon. Для массивов ячеек, размера вектора в каждой ячейке lat должен совпадать с размером вектора в соответствующей ячейке lon.

Свойства

развернуть все

Это свойство доступно только для чтения.

Количество областей многоугольника, возвращенных как массив неотрицательных целых чисел. Область является связанной областью, таким образом, что любые две точки в области могут быть соединены путем полностью в области. Области могут содержать отверстия.

Для geopolyshape скаляр, значение NumRegions 1 когда geopolyshape объект представляет один многоугольник и больше, чем 1 когда объект представляет мультимногоугольник.

Для geopolyshape массив, размер NumRegions совпадает с размером массива.

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

Это свойство доступно только для чтения.

Количество отверстий в многоугольнике или мультимногоугольнике, возвращенном как массив неотрицательных целых чисел.

Для geopolyshape массив, размер NumHoles совпадает с размером массива.

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

Это свойство доступно только для чтения.

Геометрический тип, возвращенный как "polygon".

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

Это свойство доступно только для чтения.

Тип системы координат, возвращенный как "geographic".

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

Географическая система координат (CRS) в виде geocrs объект. Географический CRS состоит из данной величины (включая ее эллипсоид), нулевой меридиан и угловая единица измерения.

Примеры

свернуть все

Импортируйте файл форм, содержащий глобальные контактные площадки как геопространственная таблица. Файл форм представляет контактные площадки с помощью многоугольников.

GT = readgeotable("landareas.shp");

Создайте подтаблицу, которая содержит многоугольник, представляющий Африку, Европу и Азию. Получите информацию о многоугольнике путем запроса Shape переменная таблицы.

row = GT.Name == "Africa and Eurasia";
rowGT = GT(row,:);
rowGT.Shape
ans = 
  geopolyshape with properties:

              NumRegions: 1
                NumHoles: 22
                Geometry: "polygon"
    CoordinateSystemType: "geographic"
           GeographicCRS: [1x1 geocrs]

Отобразите многоугольник на мировой карте.

worldmap([-45 80],[-25 195])
geoshow(rowGT)

Создайте отдельный многоугольник без отверстий как geopolyshape скаляр. Задайте географический CRS как Мировую Геодезическую Систему 1 984, который имеет код EPSG 4326.

lat = [39 45 19 39];
lon = [-113 -49 -100 -113];
polyshp = geopolyshape(lat,lon);

g = geocrs(4326);
polyshp.GeographicCRS = g
polyshp = 
  geopolyshape with properties:

              NumRegions: 1
                NumHoles: 0
                Geometry: "polygon"
    CoordinateSystemType: "geographic"
           GeographicCRS: [1x1 geocrs]

Создайте мультимногоугольник с двумя областями и одним отверстием как geopolyshape скаляр.

lat = [37 46 31 20 37 NaN 45 49 35 32 45 NaN 35 40 42 35];
lon = [69 90 105 79 69 NaN 6 52 43 14 6 NaN 18 32 22 18];
multipolygon = geopolyshape(lat,lon);
multipolygon.GeographicCRS = g
multipolygon = 
  geopolyshape with properties:

              NumRegions: 2
                NumHoles: 1
                Geometry: "polygon"
    CoordinateSystemType: "geographic"
           GeographicCRS: [1x1 geocrs]

Создайте два отдельных многоугольника как 1 2 geopolyshape массив. Второй многоугольник содержит отверстие.

lat = {[37 46 31 20 37],[45 49 35 32 45 NaN 35 40 42 35]};
lon = {[69 90 105 79 69],[6 52 43 14 6 NaN 18 32 22 18]};
polyArray = geopolyshape(lat,lon);
polyArray.GeographicCRS = g
polyArray=1×2 object
  1x2 geopolyshape array with properties:

              NumRegions: [1 1]
                NumHoles: [0 1]
                Geometry: "polygon"
    CoordinateSystemType: "geographic"
           GeographicCRS: [1x1 geocrs]

Введенный в R2021b