Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Печать в QGIS

Тема в разделе "QGIS/NEXTGIS", создана пользователем Илюха, 2 сен 2021.

  1. Илюха

    Форумчанин

    Регистрация:
    23 ноя 2010
    Сообщения:
    49
    Симпатии:
    1
    Добрый день, помогите разобраться. Есть такая задача: на листе в макете надо создать несколько видовых экранов (окон карт) чтобы каждый при печати отображал только нужный мне набор слоев из основной карты при печати атласов. Предполагаю что надо где то прописать какое-то выражение, но не могу понять как.
     
    #1
  2. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    271
    Симпатии:
    159
    Что-то вроде геологической карты с центральной картой и кучей тематических карт масштабом помельче по бокам?
    Знаю только один способ. Создать штатными средствами атлас. В таблице слоя создаём поле, содержащее имя нужной страницы атласа, и определяем стиль отображения в соответствии с условием
    Код:
    "это_самое_поле" =  @atlas_pagename
    .
    Однако в атласе QGIS отображает каждое окно на отдельной странице. Для единого листа вижу только экспорт в растры с дальнейшей вставкой картинок в макет.
    Ну или собирать макет другой программой. Тогда лучше экспортировать атлас в PDF.
    Впрочем, одно другого стоит. С тем же успехом можно создать простые проекты по числу выходных карт, экспортировать картинки и не париться.
     
    #2
    Последнее редактирование: 2 сен 2021
  3. ErnieBoyd

    Форумчанин

    Регистрация:
    10 июн 2014
    Сообщения:
    271
    Симпатии:
    159
    Нашёл! Не нужен атлас и новое поле.
    Переменная map_id равна 'canvas' для экрана и названию фрейма карты на макете. Можно сделать Rule-based отображение слоя по условию
    Код:
    @map_id IN ( 'canvas' ,  'Map 3' )
    А можно запилить стиль с вычисляемым типом линии, например:
    Код:
    CASE WHEN @map_id IN ( 'canvas' , 'Map 3' ) THEN 'solid' WHEN  @map_id = 'Map 5' THEN 'dash' ELSE 'no' END
    На карте и в окне 'Map 3' линия сплошная, в окне 'Map 5' штриховая, в других окнах её нет.
    Так можно управлять буквально каждым нюансом отображения объектов, надписей и эффектов. Цвет:
    Код:
    if( @map_id IN ( 'canvas' , 'Map 3' ) , 'blue' , '#80c0ff' )
     
    #3
    Последнее редактирование: 2 сен 2021
  4. Луговский

    Форумчанин

    Регистрация:
    30 авг 2011
    Сообщения:
    277
    Симпатии:
    87
    Адрес:
    Санкт-Петербург
    На одном листе можно создать несколько окон карты. Дальше по каждому окну последовательно настраиваем отображение слоев в основной карте и блокируем слои в настройках окна карты. После блокировки все изменения в основной карте не будут затрагивать данное окно карты.
     
    #4
    ErnieBoyd нравится это.
  5. Илюха

    Форумчанин

    Регистрация:
    23 ноя 2010
    Сообщения:
    49
    Симпатии:
    1
    Благодарю за обсуждение, но суть вопроса следующая:
    На одном листе надо сделать 4 окна карты, на которых отображался бы один и тот же объект но на разных подложках (растровые слои в QGIS) и с разными наборами включенными слоями, например:
    Есть слои:
    Опоры (Poligon)
    Дороги (Line)
    Водоемы (Poligon)
    Генеральный план (Растровое изображение)
    Спутниковый снимок (Растровое изображение)
    Карта OSM (Слой QMS).
    Хочу сделать так: На одном листе 4 окна карты,
    в первом окне следующие слои: Опоры, Карта OSM
    во втором окне: Опоры, Генеральный план
    в третьем окне: Опоры, Спутниковый снимок
    в четвертом окне: Опоры, Дороги, Водоемы.
    ПРИ ВСЕМ ПРИ ЭТОМ Слой опоры является слоем генерирующий атлас, то есть опор очень много и надо каждую показать в отдельности.
    Очень нужна Ваша помощь, так как сам не понимаю
     
    #5
  6. Луговский

    Форумчанин

    Регистрация:
    30 авг 2011
    Сообщения:
    277
    Симпатии:
    87
    Адрес:
    Санкт-Петербург
    так и создай их
    в основной карте оставь отображаться только эти слои. Далее переходим в лист, выбрать первое окно карты → свойства элемента → заблокировать слои. Не забыть поставить галку на управление атлас
    в основной карте оставь отображаться только эти слои. Далее переходим в лист, выбрать второе окно карты → свойства элемента → заблокировать слои. Не забыть поставить галку на управление атлас

    и т.д.
     
    #6
    ErnieBoyd нравится это.
  7. Илюха

    Форумчанин

    Регистрация:
    23 ноя 2010
    Сообщения:
    49
    Симпатии:
    1
    Спасибо все получилось
     
    #7
    Луговский нравится это.

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление