Карта - Map

class axipy.render.Map(layers=[])

Класс карты. Рассматривается как группа слоев, объединенная в единую сущность. Вне зависимости от СК входящих в карту слоев, карта отображает все слои в одной СК. Найти наиболее подходящую для этого можно с помощью get_best_coordsystem() или же установить другую.

Единицы измерения координат так же берутся из наиболее подходяще СК, но при желании они могут быть изменены. К примеру, вместо метров могут быть установлены километры. Единицы измерения расстояний distanceUnit и площадей areaUnit берутся из настроек по умолчанию.

Параметры

layers (List[Layer]) – Список слоев, с которым будет создана карта.

Исключение

ValueError – Если один и тот же слой был передан несколько раз.

Пример:

table_world = io.openfile('world.tab')
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 distanceUnit

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

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

LinearUnit

draw(context)

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

Параметры

context (Context) – Контекст рисования.

Пример:

# Пример получения карты как растра
map = Map([ worldcap, 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

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

Примеры доступа:

len(map.layers)
>>> 2

map.layers[1].name
>>> world

for l in map.layers:
    print('Слой:', l.name)
>>> Слой: world
Тип результата

ListLayers

property need_redraw

Signal[] Сигнал о необходимости перерисовки карты. Возникает при изменении контента одного или нескольких слоев карты. Это может быть обусловлено изменением данных таблиц.

Пример:

# Смотрим активное окно.
if isinstance(view_service.active, MapView):
    # Если это карта, подключимся к событию обновления окна этой карты.
    map_view = view_service.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

Результат

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

property unit

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

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

LinearUnit

Список слоев карты - ListLayers

class axipy.render.ListLayers

Перечень слоев карты.

add(layer)

Добавляет слой в карту.

Параметры

layer (Layer) – Добавляемый слой.

Исключение

ValueError – Если слой уже содержится в карте.

at(idx)

Возвращает слой по его индексу. Так же допустимо получение слоя по индексу.

Параметры

idx (int) – Индекс слоя в списке.

Например:

layers.at(2)
layers[2]
Тип результата

Layer

property count

Количество слоев. Так же допустимо использование функции len()

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

int

move(from_idx, to_idx)

Перемещает слой в списке слоев по его индексу.

Параметры
  • from_idx (int) – Индекс слоя для перемещения.

  • to_idx (int) – Целевой индекс.

remove(idx)

Удаляет слой по индексу.

Параметры

idx (int) – Индекс удаляемого слоя.