Размер окна карты

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
Владимир В
Пользователь
Сообщения: 26
Зарегистрирован: 25 мар 2024, 09:54

Размер окна карты

Сообщение Владимир В » 21 авг 2024, 16:26

Была поставлена задача: выделить объекты по границам прямоугольника, вписать прямоугольник с объектами в окно карты и экспортировать.
Вписать по ширине окна можно через команды:

map_view = view_manager.active
map_view.set_zoom_and_center(zoom, centroid, LinearUnit.m)

Проблема: как изменить программно высоту окна карты, чтобы вписать прямоугольник по высоте?
Аватара пользователя
Дмитрий
Администратор
Сообщения: 100
Зарегистрирован: 04 июн 2019, 11:33

Re: Размер окна карты

Сообщение Дмитрий » 21 авг 2024, 19:14

Прямоугольник карты задается свойством MapView.scene_rect
https://axipy.axioma-gis.ru/6.0/referen ... scene_rect

Прямоугольник экрана, соответственно MapView.device_rect
Аватара пользователя
Владимир В
Пользователь
Сообщения: 26
Зарегистрирован: 25 мар 2024, 09:54

Re: Размер окна карты

Сообщение Владимир В » 27 авг 2024, 14:41

MapView.scene_rect и MapView.device_rect - это Getter. Они не задают параметры окна.

Решение найдено следующим образом:

map_view = view_manager.active
zoomx = item.geometry.bounds.xmax - item.geometry.bounds.xmin
zoomy = item.geometry.bounds.ymax - item.geometry.bounds.ymin
coeff = zoomy / zoomx
windowx = 600
windowy = coeff * windowx
map_widget = map_view.widget
map_widget.setFixedSize(windowx, windowy)
map_view.set_zoom_and_center(zoomx, Pnt(item.geometry.centroid().x, item.geometry.centroid().y), LinearUnit.m)
map_parent = map_widget.parent().parent()
map_parent.setFixedSize(windowx, windowy)
Ответить