Все так же - как описано в документации
property holes: List[Pnt]
Дырки полигона. Реализован в виде списка list.
Пример.
poly = Polygon((0, 0), (1, 10), (10, 1))
poly.holes.append([(2, 2), (2, 4), (5, 3)]) # Добавим дырку
for p in poly.holes[0]: # Просмотр точек дырки полигона
print("Point of hole:", p)
print('Вторая точка первой дырки:', poly.holes[0][1])
Матвеич писал(а): ↑06 май 2024, 16:20 gismap - доброго времени суток !
задача состоит в считывании координат выбранного площадного объекта - полигона
с двумя дырками. Т.е. необходимо считать координаты внешнего контура полигона и
координаты дырок и записать в массивы
# Определяем выбранный объект
for item in axipy.selection_manager.get_as_cursor() :
print(item.geometry)
>>> Polygon (points=5, holes=0); prj:NonEarth Units "m" Bounds (0, 0) (1000000, 1000000)
количество дырок две , а значение holes=0 ?
# тип выбранного объекта должен быть полигон
if item.geometry.name=='Полигон' :
ps = item.geometry.to_wkt()
print (ps) # печатаем координаты полигона с дырками
>>> POLYGON ((9994.36 11038.82, 10007.12 11102.13, 10074.68 11087.01, 10058.62 11016.15, 9994.36 11038.82), (10042.08 11066.23, 10039.72 11085.12, 10052 11085.6, 10053.42 11069.06, 10042.08 11066.23), (10018.7525 11050.3195, 10029.4505 11066.025, 10036.279 11048.726, 10018.7525 11050.3195))
# Применяем Ваш фрагмент
for p in item.geometry.points : # Просмотр точек полигона
x = p.x
y = p.y
print (x, ' - ', y)
# считали координаты внешнего контура полигона
>>> 9994.36 - 11038.82
10007.12 - 11102.13
10074.68 - 11087.01
10058.62 - 11016.15
9994.36 - 11038.82
# теперь вопрос - как считать координаты дырок . (количество дырок произвольное)
Или координаты можно считывать из to_wkt() ?
Вы отсылаете к руководству Polygon (Точка,Pnt)
понять взаимосвязь операторов и методов без примера очень трудно.
(Ориентируюсь только на Ваши рабочие фрагменты)