Возможно раздел FAQ имел бы смысл , но это все к администраторам сайта (форума)
Плагины
Re: Плагины
Ну это точно не ко мне.
Возможно раздел FAQ имел бы смысл , но это все к администраторам сайта (форума)
Возможно раздел FAQ имел бы смысл , но это все к администраторам сайта (форума)
Re: Плагины
Уважаемый gisamap !
Извините, я был уверен , что Вы один из модераторов форума, судя по уровню ответов. Благодарю Вас за помощь!!!
Извините, я был уверен , что Вы один из модераторов форума, судя по уровню ответов. Благодарю Вас за помощь!!!
Re: Плагины
Доброго времени суток.
создаю объект "Дуга"
ar1=axipy.Arc(axipy.Rect(356.65,261.80,367.787,270.27),180,270)
кликаю по объекту "Дуга" границы геометрии
xmin=356.66 xmax=362.2185
ymin=261.80 ymax=266.035
нач. угол =180 , кон. угол=270
В чем причина ошибки , что заданные значения RECT отличаются от графики?
создаю объект "Дуга"
ar1=axipy.Arc(axipy.Rect(356.65,261.80,367.787,270.27),180,270)
кликаю по объекту "Дуга" границы геометрии
xmin=356.66 xmax=362.2185
ymin=261.80 ymax=266.035
нач. угол =180 , кон. угол=270
В чем причина ошибки , что заданные значения RECT отличаются от графики?
Re: Плагины
Дуга представляет собой часть эллипса, а сам эллипс вписан в прямоугольник.
Когда вы создаете дугу, вы задаёте прямоугольник (Rect), который определяет размеры этого эллипса.
Таким образом, дуга — это часть эллипса, которая помещается в этот прямоугольник.
Границы геометрии обозначают область, которая охватывает саму дугу. На изображении:
• Зелёным цветом обозначена дуга.
• Зелёным пунктиром показан эллипс.
• Синим пунктиром выделен прямоугольник, который определяет размеры эллипса.
• Красным пунктиром обозначен прямоугольник, который представляет границы геометрии дуги.
Ниже код, создающий это изображение
Когда вы создаете дугу, вы задаёте прямоугольник (Rect), который определяет размеры этого эллипса.
Таким образом, дуга — это часть эллипса, которая помещается в этот прямоугольник.
Границы геометрии обозначают область, которая охватывает саму дугу. На изображении:
• Зелёным цветом обозначена дуга.
• Зелёным пунктиром показан эллипс.
• Синим пунктиром выделен прямоугольник, который определяет размеры эллипса.
• Красным пунктиром обозначен прямоугольник, который представляет границы геометрии дуги.
Ниже код, создающий это изображение
Code: Select all
from PySide2.QtCore import Qt
table = axipy.data_manager['test']
rect = axipy.Rect(356.65,261.80,367.787,270.27)
arc = axipy.Arc(rect, 180, 270)
print(rect)
print(axipy.Rect(arc.center.x - arc.xRadius, arc.center.y - arc.yRadius, arc.center.x + arc.xRadius, arc.center.y + arc.yRadius))
print(arc.bounds)
style = axipy.LineStyle(2, Qt.green)
f_arc = axipy.Feature(geometry = arc, style = style)
style = axipy.PolygonStyle(0)
style.set_pen(9, Qt.green)
f_ellipse = axipy.Feature(geometry = axipy.Ellipse(rect), style = style)
style = axipy.PolygonStyle(0)
style.set_pen(9, Qt.blue)
f_rectangle = axipy.Feature(geometry = axipy.Rectangle(rect), style = style)
style = axipy.PolygonStyle(0)
style.set_pen(9, Qt.red)
f_bounds = axipy.Feature(geometry = axipy.Rectangle(arc.bounds), style = style)
table.insert([f_bounds, f_rectangle, f_ellipse, f_arc])
Re: Плагины
Благодарю Вас Александр , этот момент я не учел.
Re: Плагины
доброго времени суток !
В пользовательской панели создал кнопку "точечный знак".
....................
self._action5: ActionButton = ActionButton(
title=self.tr("точечный знак"),
icon=st3 ,
on_click=self.uz_point,
enable_on=axipy.ObserverManager.HasTables,
tooltip=self.tr("точечный топографический условный знак")
)
position = Position(tr("Условные знаки"), tr("Минимальный"))
position.add(self._action5)
............
Задача: при нажатии на кнопку указатель курсора
должен стать крестиком. Указателем курсора намечаем место в карте и кликая ЛКМ строим точечный условный знак с заранее
выбранным стилем точечного объекта.(такая же задача стоит для линейных ,площадных и текстовых объектов).
Итог: все мои попытки оживить кнопку с помощью - MapTool - Инструмент окна карты,ActiveToolPanel - Панель активного инструмента
не привели к успеху.
Возможно ли привести рабочий пример с созданием точечного знака
используя пользовательскую кнопку.
В пользовательской панели создал кнопку "точечный знак".
....................
self._action5: ActionButton = ActionButton(
title=self.tr("точечный знак"),
icon=st3 ,
on_click=self.uz_point,
enable_on=axipy.ObserverManager.HasTables,
tooltip=self.tr("точечный топографический условный знак")
)
position = Position(tr("Условные знаки"), tr("Минимальный"))
position.add(self._action5)
............
Задача: при нажатии на кнопку указатель курсора
должен стать крестиком. Указателем курсора намечаем место в карте и кликая ЛКМ строим точечный условный знак с заранее
выбранным стилем точечного объекта.(такая же задача стоит для линейных ,площадных и текстовых объектов).
Итог: все мои попытки оживить кнопку с помощью - MapTool - Инструмент окна карты,ActiveToolPanel - Панель активного инструмента
не привели к успеху.
Возможно ли привести рабочий пример с созданием точечного знака
используя пользовательскую кнопку.
Re: Плагины
Здравствуйте!
Для решения данной задачи Вам необходимо реализовать свой инструмент карты от класса axipy.MapTool https://axipy.axioma-gis.ru/6.1/referen ... ool.cursor.
Курсор в этом случае устанавливается при загрузке в методе load
Как образец можно посмотреть пример "Пример Инструмента axipy", который входит в поставку и расположен в каталоге plugins/ru_axioma_gis_axipy_example_tool.
Для решения данной задачи Вам необходимо реализовать свой инструмент карты от класса axipy.MapTool https://axipy.axioma-gis.ru/6.1/referen ... ool.cursor.
Курсор в этом случае устанавливается при загрузке в методе load
Как образец можно посмотреть пример "Пример Инструмента axipy", который входит в поставку и расположен в каталоге plugins/ru_axioma_gis_axipy_example_tool.
Re: Плагины
Благодарю Дмитрий ! К сожалению таких примеров на которые Вы указываете мало.
Надо создать текстовый объект в карте. Стиль текста D431 , size=10 ,цвет текста красный
# Получение активного окна
win = axipy.view_manager.active # Получаем активное окно
# Получение редактируемого слоя активного окна карты
editable_layer = win.editable_layer
# Получение таблицы редактируемого слоя
table = editable_layer.data_object
# задаем новый стиль текста
new_style = axipy.TextStyle("D431", 10,0,Qt.red)
gtxt='Проба пера'
text = axipy.Text.create_by_style(gtxt, ls.points[0], style=new_style, view=win, angle=0)
table.insert(axipy.Feature(geometry=text))
print(new_style) >>> Font ("D431", 2, 10, 16711680)
создается текстовый объект "Проба пера" , в нужном месте , но стиль текста "Carlito"
Где допущена ошибка, почему стиль текста не изменяется ?
Надо создать текстовый объект в карте. Стиль текста D431 , size=10 ,цвет текста красный
# Получение активного окна
win = axipy.view_manager.active # Получаем активное окно
# Получение редактируемого слоя активного окна карты
editable_layer = win.editable_layer
# Получение таблицы редактируемого слоя
table = editable_layer.data_object
# задаем новый стиль текста
new_style = axipy.TextStyle("D431", 10,0,Qt.red)
gtxt='Проба пера'
text = axipy.Text.create_by_style(gtxt, ls.points[0], style=new_style, view=win, angle=0)
table.insert(axipy.Feature(geometry=text))
print(new_style) >>> Font ("D431", 2, 10, 16711680)
создается текстовый объект "Проба пера" , в нужном месте , но стиль текста "Carlito"
Где допущена ошибка, почему стиль текста не изменяется ?
Re: Плагины
Добрый день
Замените строчку
table.insert(axipy.Feature(geometry=text))
на
table.insert(axipy.Feature(geometry=text,style= new_style))
Замените строчку
table.insert(axipy.Feature(geometry=text))
на
table.insert(axipy.Feature(geometry=text,style= new_style))
Матвеич писал(а): ↑07 фев 2025, 17:42 Благодарю Дмитрий ! К сожалению таких примеров на которые Вы указываете мало.
Надо создать текстовый объект в карте. Стиль текста D431 , size=10 ,цвет текста красный
# Получение активного окна
win = axipy.view_manager.active # Получаем активное окно
# Получение редактируемого слоя активного окна карты
editable_layer = win.editable_layer
# Получение таблицы редактируемого слоя
table = editable_layer.data_object
# задаем новый стиль текста
new_style = axipy.TextStyle("D431", 10,0,Qt.red)
gtxt='Проба пера'
text = axipy.Text.create_by_style(gtxt, ls.points[0], style=new_style, view=win, angle=0)
table.insert(axipy.Feature(geometry=text))
print(new_style) >>> Font ("D431", 2, 10, 16711680)
создается текстовый объект "Проба пера" , в нужном месте , но стиль текста "Carlito"
Где допущена ошибка, почему стиль текста не изменяется ?