Плагины
Re: Плагины
Александр! Благодарю Вас !
Я еще не отвык от MapBasic.
Я еще не отвык от MapBasic.
Re: Плагины
Александр ! Доброго времени суток!
Как осуществить поиск объектов в заданной точке Карты ?
( по аналогии с MapBasic - функция SearchPoint(map_window_id,x,y) поиск осуществляет по всем доступным слоям ока Карты )
где: map_window_id - идентификатор окна Карты;
x - координата по оси X
y- координата по оси Y
возвращает количество найденных объектов
Как осуществить поиск объектов в заданной точке Карты ?
( по аналогии с MapBasic - функция SearchPoint(map_window_id,x,y) поиск осуществляет по всем доступным слоям ока Карты )
где: map_window_id - идентификатор окна Карты;
x - координата по оси X
y- координата по оси Y
возвращает количество найденных объектов
Re: Плагины
Добавка: аналог функции SearchInfo(sequence_number,attribute)
где : sequence_number - кол-во найденных объектов
attribute : Search_info_table - имя таблицы содержащий этот объект
Search_info_row - номер записи
P.S. назначение функций MapBаsic я привел , чтобы не запутать Вас своими вопросами.
где : sequence_number - кол-во найденных объектов
attribute : Search_info_table - имя таблицы содержащий этот объект
Search_info_row - номер записи
P.S. назначение функций MapBаsic я привел , чтобы не запутать Вас своими вопросами.
Re: Плагины
Александр ! Доброго времени суток!
Я правильно понял , что осуществить поиск объектов в заданной точке Карты по всем слоям
в Python API такой возможности нет ?
Я правильно понял , что осуществить поиск объектов в заданной точке Карты по всем слоям
в Python API такой возможности нет ?
Re: Плагины
Стандартной функции нет, но её можно реализовать
вывод для карты мира с сайта:
Code: Select all
import typing
import axipy as axp
class SearchInfo(typing.NamedTuple):
table: axp.Table
features: typing.Iterator[axp.Feature]
def search_point(map_view: axp.MapView, x: float, y: float, dp: int = 1) -> typing.Iterator[SearchInfo]:
"""
:param map_view: Окно карты
:param x: X-координата
:param y: Y-координата
:param dp: точность в пикселях
:return: Список, состоящий из таблицы и принадлежащих ей записей
"""
# найдём прямоугольник на карте плюс-минус точность в пикселях от исходной точки
xp, yp = map_view.scene_to_device_transform.map(x, y)
x1, y1 = map_view.device_to_scene_transform.map(xp - dp, yp - dp)
x2, y2 = map_view.device_to_scene_transform.map(xp + dp, yp + dp)
r = axp.Rectangle(x1, y1, x2, y2, cs=map_view.coordsystem)
# На всех векторных слоях найдём объекты, пересекающиеся с этим прямоугольником
return (SearchInfo(lr.data_object, lr.data_object.itemsInObject(r))
for lr in map_view.map.layers if isinstance(lr, axp.VectorLayer) and isinstance(lr.data_object, axp.Table))
# Пример использования
# Найдём на активной карте все оъекты в точке 37.627773, 55.75062
# Для каждого результата выведем название таблицы и значение из первой колонки
for sp in search_point(axp.view_manager.active, 37.627773, 55.75062):
for f in sp.features:
print(sp.table.name, ": ", f[0])
Код: Выделить всё
Столицы : Москва
Страны : Россия
Океан : 0
Re: Плагины
Александр ! доброго времени суток !
Благодарю Вас, буду разбираться.
P.S. По моему разумению такие функции должны быть.
Благодарю Вас, буду разбираться.
P.S. По моему разумению такие функции должны быть.
Re: Плагины
Доброго времени суток!
Вопрос : Как в Python API выполнить копию открытой таблицы по указанному пользователем пути.
т.е. есть ли аналог оператора MapBasic : Commit Table rez As filepath+'rezult.tab'
где: rez - открытая таблица,
filepath - путь сохраняемой таблицы - rezult.tab
Вопрос : Как в Python API выполнить копию открытой таблицы по указанному пользователем пути.
т.е. есть ли аналог оператора MapBasic : Commit Table rez As filepath+'rezult.tab'
где: rez - открытая таблица,
filepath - путь сохраняемой таблицы - rezult.tab
Re: Плагины
Добрый день
Вот пример из документации https://axipy.axioma-gis.ru/6.1/referen ... ation.html
Только в отличии от документации
заменил destination с mif на tab
file_in = 'world.tab'
file_out = 'world_copy.tab'
source = provider_manager.tab.get_source(file_in).open()
destination = provider_manager.tab.get_destination(file_out, source.schema)
destination.export(source.items())
Вот пример из документации https://axipy.axioma-gis.ru/6.1/referen ... ation.html
Только в отличии от документации
заменил destination с mif на tab
file_in = 'world.tab'
file_out = 'world_copy.tab'
source = provider_manager.tab.get_source(file_in).open()
destination = provider_manager.tab.get_destination(file_out, source.schema)
destination.export(source.items())
Матвеич писал(а): ↑13 дек 2024, 12:41 Доброго времени суток!
Вопрос : Как в Python API выполнить копию открытой таблицы по указанному пользователем пути.
т.е. есть ли аналог оператора MapBasic : Commit Table rez As filepath+'rezult.tab'
где: rez - открытая таблица,
filepath - путь сохраняемой таблицы - rezult.tab
Re: Плагины
Уважаемый gisamap !
Благодарю Вас и Вашу эрудицию ! !!!!!!!!!!!!!!!!!!!!
Благодарю Вас и Вашу эрудицию ! !!!!!!!!!!!!!!!!!!!!
Re: Плагины
gisamap доброго времени суток.
пример из документации https://axipy.axioma-gis.ru/6.1/referen ... ation.html
в этом случае , при копировании , пользователь открывает по указанному пути таблицу :
source = provider_manager.tab.get_source(file_in).open() и копирует в нужную папку :
destination = provider_manager.tab.get_destination(file_out, source.schema) ........
У меня ситуация иная: В ГИС Аксиома открыта таблица. Составляется SQL запрос по этой таблице.
Выбранные записи , SQL запроса, хранятся в таблице: "Запрос". Необходимо сохранить копию таблицы "Запрос"
найти методику или операторы копирования таблиц не удается...
пример из документации https://axipy.axioma-gis.ru/6.1/referen ... ation.html
в этом случае , при копировании , пользователь открывает по указанному пути таблицу :
source = provider_manager.tab.get_source(file_in).open() и копирует в нужную папку :
destination = provider_manager.tab.get_destination(file_out, source.schema) ........
У меня ситуация иная: В ГИС Аксиома открыта таблица. Составляется SQL запрос по этой таблице.
Выбранные записи , SQL запроса, хранятся в таблице: "Запрос". Необходимо сохранить копию таблицы "Запрос"
найти методику или операторы копирования таблиц не удается...