GeometryCollection - Коллекция геометрий

class axipy.da.GeometryCollection(cs=None)

Базовые классы: axipy.da.Geometry

Коллекция разнотипных геометрических объектов. Допустимо хранение геометрических объектов различного типа, за исключением коллекций. Доступ к элементам производится по аналогии работы со списком list.

Параметры

cs (Optional[CoordSystem]) – Система Координат, в которой создается геометрия.

Для получения размера коллекции используйте функцию len:

cnt = len(coll)

Доступ к элементам производится по индексу. Нумерация начинается с 0.

В качестве примера получим первый элемент:

coll[1]

Обновление геометрии в коллекции так же производится по ее индексу. Так же допустимо изменение некоторых свойств геометрии в зависимости от ее типа.


# Примеры установки элемента с индексом 1
coll[1] = (2,2) # Как точки с координатами (2,2)
coll[1] = [(101, 102), (103, 104), (105, 106)] # Как полилинии
coll[1] = Polygon((101, 102), (103, 104), (105, 106)) # Как полигона

# Доступ к элементам коллекции::
for g in coll:
    print('Геометрия:', g)
append(*value)

Добавление геометрии в коллекцию. Задание параметров аналогично указанию их при создании объектов конкретного типа. Если опустить указание класса, то для одной точки или пары значений float будет создан точечный объект Point, если точек больше, - объект класса LineString.

Пример.
# Создадим коллекцию и добавим в нее несколько объектов различного типа.
coll = GeometryCollection()
coll.append((1,2)) # Точка
coll.append(1,2) # Точка
coll.append([(3,4), (5, 5), (10, 0)]) # Полилиния в виде :class:`list`. Можно это сделать через конструктор :class:`LinearString`.
coll.append((3,4), (5, 5), (10, 0)) # Полилиния
coll.append(Polygon([(3,4), (5, 5), (10, 0)])) # Полигон
remove(idx)

» Удаление геометрии из коллекции.

Параметры

idx (int) – Индекс геометрии в коллекции.