Map - Карта¶
-
class
axipy.render.
Map
(layers=[])¶ Класс карты. Рассматривается как группа слоев, объединенная в единую сущность. Вне зависимости от СК входящих в карту слоев, карта отображает все слои в одной СК. Найти наиболее подходящую для этого можно с помощью
get_best_coordsystem()
или же установить другую.Единицы измерения координат так же берутся из наиболее подходяще СК, но при желании они могут быть изменены. К примеру, вместо метров могут быть установлены километры. Единицы измерения расстояний
distanceUnit
и площадейareaUnit
берутся из настроек по умолчанию.- Параметры
layers (
List
[Layer
]) – Список слоев, с которым будет создана карта.- Исключение
ValueError – Если один и тот же слой был передан несколько раз.
table_world = provider_manager.openfile(filepath) world = Layer.create(table_world) map = Map([ world ]) print('СК:', map.get_best_coordsystem().prj) print('Охват:', map.get_best_rect()) print('Единицы измерения расстояний:', map.distanceUnit.description) map.distanceUnit = Unit.mi print('Единицы измерения расстояний (изменено):', map.distanceUnit.description) ''' >>> СК: Earth Projection 12, 62, "m", 0 >>> Охват: (-16194966.287183324 -8621185.324024437) (16789976.633236416 8326222.646170927) >>> Единицы измерения расстояний: километры >>> Единицы измерения расстояний (изменено): мили '''
-
property
cosmetic
¶ Косметический слой карты.
- Тип результата
-
property
distanceUnit
¶ Единицы измерения расстояний на карте.
- Тип результата
-
draw
(context)¶ Рисует карту в контексте.
- Параметры
context (
Context
) – Контекст рисования.
# Пример получения карты как растра map = Map([ world ]) image = QImage(1600, 800, QImage.Format_ARGB32_Premultiplied) image.fill(Qt.white) painter = QPainter(image) context = Context(painter) map.draw(context)
-
property
editable_layer
¶ Слой, установленный для текущего редактирования в карте.
- Исключение
ValueError – При попытке установить слой, не принадлежащий этой карте.
- Тип результата
-
get_best_coordsystem
()¶ Определяет координатную системы карты, наиболее подходящую исходя из содержимого перечня слоев.
- Тип результата
CoordSystem
-
get_best_rect
(coordsystem=None)¶ Определяет ограничивающий прямоугольник карты.
-
property
layers
¶ Список слоев.
map = Map([ world ]) len(map.layers) ''' >>> 1 ''' map.layers[0].title ''' >>> world ''' for l in map.layers: print('Слой:', l.title) ''' >>> Слой: world '''
- Тип результата
-
property
need_redraw
¶ Signal[]
Сигнал о необходимости перерисовки карты. Возникает при изменении контента одного или нескольких слоев карты. Это может быть обусловлено изменением данных таблиц.# Смотрим активное окно. if isinstance(view_manager.active, MapView): # Если это карта, подключимся к событию обновления окна этой карты. map_view = view_manager.active map_view.map.need_redraw.connect(lambda : print('Update map'))
- Тип результата
Signal
-
to_image
(width, height, coordsystem=None, bbox=None)¶ Рисует карту в изображение.
- Параметры
- Тип результата
- Результат
Изображение.
-
property
unit
¶ Единицы измерения координат карты.
- Тип результата