Плагины

Вопросы связанные с работой ГИС Аксиома
Аватара пользователя
Матвеич
Сообщения: 83
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 17 апр 2024, 12:10

PyCharm выдает сообщение:
Unresolved reference 'query_hidden'
Аватара пользователя
gisamap
Сообщения: 220
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 17 апр 2024, 12:24

Вот работающий код
path_tab=r"E:\Support\AxiomaTesting\Symbol\symbol_1del.tab"
tab=provider_manager.openfile(path_tab)
print("Count record="+str(tab.count()))
sql="Delete from "+tab.name
query=data_manager.query_hidden(sql)
print("Count record(del)="+str(tab.count()))
Матвеич писал(а): 17 апр 2024, 12:10 PyCharm выдает сообщение:
Unresolved reference 'query_hidden'
Аватара пользователя
Матвеич
Сообщения: 83
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 17 апр 2024, 12:45

Благодарю Вас ,пробую.
Аватара пользователя
Матвеич
Сообщения: 83
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 03 май 2024, 05:04

Уважаемые форумчане , доброго времени суток !

...
# считывать координаты выбранного площадного объекта (я выбираю только один полигон)
for item in axipy.selection_manager.get_as_cursor() :
print(item.geometry.name)
print(item.geometry)
if item.geometry.name=='Полигон' :
print(item.geometry.to_wkt())
...

Полигон
Polygon (points=6, holes=0); prj:NonEarth Units "m" Bounds (0, 0) (1000000, 1000000)
POLYGON ((10000 11000, 10006.59 11015.18, 10025.26 11023.65, 10038.1 11007.77, 10030.55 10990.95, 10000 11000))

Вопрос : Как считать количество точек и координаты полигона ? ()
Аватара пользователя
gisamap
Сообщения: 220
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » 03 май 2024, 07:13

Добрый день.
Смотри документацию https://axioma-gis.ru/axipy/dev-guide/5 ... lygon.html
1. Думаю правильно проверять тип объекта \
if isinstance(item.geometry,Polygon):

2. Точки внешнего контура можно получить
points=item.geometry
и т.д
Матвеич писал(а): 03 май 2024, 05:04 Уважаемые форумчане , доброго времени суток !

...
# считывать координаты выбранного площадного объекта (я выбираю только один полигон)
for item in axipy.selection_manager.get_as_cursor() :
print(item.geometry.name)
print(item.geometry)
if item.geometry.name=='Полигон' :
print(item.geometry.to_wkt())
...

Полигон
Polygon (points=6, holes=0); prj:NonEarth Units "m" Bounds (0, 0) (1000000, 1000000)
POLYGON ((10000 11000, 10006.59 11015.18, 10025.26 11023.65, 10038.1 11007.77, 10030.55 10990.95, 10000 11000))

Вопрос : Как считать количество точек и координаты полигона ? ()
Аватара пользователя
Матвеич
Сообщения: 83
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » 04 май 2024, 06:30

Уважаемый gismap ! извините за задержку.

посмотрел документацию https://axioma-gis.ru/axipy/dev-guide/5 ... lygon.html , не понял как
можно прочитать координаты X,Y существующего выбранного объекта типа полигон.

- "Точки внешнего контура можно получить
points=item.geometry
и т.д "

меня очень интересует и т.д. так как points это :
Polygon (points=6, holes=0); prj:NonEarth Units "m" Bounds (0, 0) (1000000, 1000000)

какой оператор извлечет X и Y полигона ?

Это для Вас и т.д , а для меня : Вот тебе бабушка и Юрьев день...
Аватара пользователя
gisamap
Сообщения: 220
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » Сегодня, 07:58

Добрый день.
Вот пример из документации
for p in poly.points: # Просмотр точек полигона
print("point:", p)

для варианта координат точек
for p in poly.points: # Просмотр точек полигона
x=p.x
y=p.y
Матвеич писал(а): 04 май 2024, 06:30 Уважаемый gismap ! извините за задержку.

посмотрел документацию https://axioma-gis.ru/axipy/dev-guide/5 ... lygon.html , не понял как
можно прочитать координаты X,Y существующего выбранного объекта типа полигон.

- "Точки внешнего контура можно получить
points=item.geometry
и т.д "

меня очень интересует и т.д. так как points это :
Polygon (points=6, holes=0); prj:NonEarth Units "m" Bounds (0, 0) (1000000, 1000000)

какой оператор извлечет X и Y полигона ?

Это для Вас и т.д , а для меня : Вот тебе бабушка и Юрьев день...
Аватара пользователя
Матвеич
Сообщения: 83
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » Сегодня, 08:47

Уважаемый gismap !

Нет слов ,просто нет слов !!!!! Все получилось очень элегантно.
Почему я не вижу в документации этих примеров , не понимаю... просто морок какой-то.

Я благодарю Вас за помощь и за Ваше время .
Благодарю !!!!
Аватара пользователя
gisamap
Сообщения: 220
Зарегистрирован: 18 окт 2019, 08:03

Re: Плагины

Сообщение gisamap » Сегодня, 10:34

Смотри в документации

property points: List[Pnt]

Точки полигона. Реализован как список python list точек Pnt. В каждом контуре, количество точек на 1 больше, чем количество узлов, так как контур - это замкнутая линия, и первая и последняя точка совпадают.

Видите - points это List[Pnt]
Нажимаем на Pnt получаем https://axioma-gis.ru/axipy/dev-guide/5 ... #axipy.Pnt
и смотрим свойства Pnt
Матвеич писал(а): Сегодня, 08:47 Уважаемый gismap !

Нет слов ,просто нет слов !!!!! Все получилось очень элегантно.
Почему я не вижу в документации этих примеров , не понимаю... просто морок какой-то.

Я благодарю Вас за помощь и за Ваше время .
Благодарю !!!!
Аватара пользователя
Матвеич
Сообщения: 83
Зарегистрирован: 09 янв 2024, 11:43

Re: Плагины

Сообщение Матвеич » Сегодня, 13: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)
понять взаимосвязь операторов и методов без примера очень трудно.
(Ориентируюсь только на Ваши рабочие фрагменты)
Ответить