mappolyshape

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

Описание

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

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

Создание

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

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

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

Синтаксис

Описание

пример

shape = mappolyshape(x,y) создает mappolyshape объект или массив mappolyshape объекты с вершинами в заданном x - и y - координаты. Размеры xY, и mappolyshape объектный массив shape соответствие.

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

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

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

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

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

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

x- в виде числового вектора или массива ячеек числовых векторов.

  • Создайте многоугольник путем определения вектора, такого как [-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 значения в x должен соответствовать NaN значения в y.

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

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

y- в виде числового вектора или массива ячеек числовых векторов.

  • Создайте многоугольник путем определения вектора, такого как [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 значения в x должен соответствовать NaN значения в y.

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Спроектированная система координат (CRS) в виде projcrs объект. Спроектированный CRS состоит из географического CRS и нескольких параметров, которые используются, чтобы преобразовать координаты к и от географического CRS.

Примеры

свернуть все

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

hydro = readgeotable("concord_hydro_area.shp");

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

pond = hydro(14,:);
pond.Shape
ans = 
  mappolyshape with properties:

              NumRegions: 1
                NumHoles: 3
                Geometry: "polygon"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1×1 projcrs]

Импортируйте ортофотографию Согласия, MA, наряду с объектом ссылки ячеек карты и палитрой. Отобразите ортофотографию и многоугольник на карте.

[ortho,R,cmap] = readgeoraster("concord_ortho_w.tif");
mapshow(ortho,cmap,R) 
mapshow(pond,FaceColor="c")

Создайте отдельный многоугольник без отверстий как mappolyshape скаляр. Задайте спроектированный CRS как Мир, Равноотстоящий Цилиндрический, который имеет код полномочий EPSG 4087.

x = [-113 -49 -100 -113];
y = [39 45 19 39];
polyshp = mappolyshape(x,y);

p = projcrs(4087);
polyshp.ProjectedCRS = p
polyshp = 
  mappolyshape with properties:

              NumRegions: 1
                NumHoles: 0
                Geometry: "polygon"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1x1 projcrs]

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

x = [69 90 105 79 69 NaN 6 52 43 14 6 NaN 18 32 22 18];
y = [37 46 31 20 37 NaN 45 49 35 32 45 NaN 35 40 42 35];
multipolygon = mappolyshape(x,y);
multipolygon.ProjectedCRS = p
multipolygon = 
  mappolyshape with properties:

              NumRegions: 2
                NumHoles: 1
                Geometry: "polygon"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1x1 projcrs]

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

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

              NumRegions: [1 1]
                NumHoles: [0 1]
                Geometry: "polygon"
    CoordinateSystemType: "planar"
            ProjectedCRS: [1x1 projcrs]

Введенный в R2021b