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 areaUnit

Единицы измерения площадей карты.

Тип результата

AreaUnit

property cosmetic

Косметический слой карты.

Тип результата

VectorLayer

property distanceUnit

Единицы измерения расстояний на карте.

Тип результата

LinearUnit

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 – При попытке установить слой, не принадлежащий этой карте.

Тип результата

VectorLayer

get_best_coordsystem()

Определяет координатную системы карты, наиболее подходящую исходя из содержимого перечня слоев.

Тип результата

CoordSystem

get_best_rect(coordsystem=None)

Определяет ограничивающий прямоугольник карты.

Параметры

coordsystem (Optional[CoordSystem]) – Координатная система, в которой необходимо получить результат. Если отсутствует, будет выдан результат для наиболее подходящей координатной системы.

Тип результата

Rect

property layers

Список слоев.

Примеры доступа.
map = Map([ world ])
len(map.layers)
'''
>>> 1
'''
map.layers[0].title
'''
>>> world
'''
for l in map.layers:
    print('Слой:', l.title)
'''
>>> Слой: world
'''
Тип результата

ListLayers

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)

Рисует карту в изображение.

Параметры
  • width (int) – Ширина выходного изображения.

  • height (int) – Высота выходного изображения.

  • coordsystem (Optional[CoordSystem]) – Координатная система. Если не задана, берется наиболее подходящая.

  • bbox (Optional[Rect]) – Ограничивающий прямоугольник. Если не задан, берется у карты.

Тип результата

QImage

Результат

Изображение.