Для будущих читателей, которые просматривают этот пост, эта ошибка все еще существует в 2.12. Вот наглядный пример ошибки, скриншот из PDF-файла, который я создал с помощью Print Composer. Все слои, а также базовая карта изображений Bing были EPSG: 3857 (WGS 84 / Pseudo Mercator). Я отметил красным, как изменились основные изображения. Этот сдвиг происходит только в выводе Print Composer; везде это правильно выровнено. Это, конечно, похоже на некоторый сдвиг данных:
Но это не базовый сдвиг. Это ошибка Print Composer, которая сдвигает местоположение карты любой (все? Я не уверен. По крайней мере, Bing Aerial) базовой карты OpenLayers при экспорте в PDF (я думаю, что и png тоже). Но этот сдвиг происходит только в том случае, если в Print Composer есть поле вокруг карты, т. Е. Область карты меньше размера бумаги. Даже на миллиметр (странно, да?)
К счастью, объяснение Шанкара (спасибо!) Предлагает обходной путь. Я расширю его ответ этими деталями:
Чтобы обойти эту ошибку, если вы добавите карту в Print Composer, которая содержит базовую карту OpenLayers, карта должна заполнить весь размер страницы без каких-либо полей (это прискорбно, потому что пустое пространство вокруг карты может помочь визуально). Чтобы заполнить страницу, перейдите на панель «Свойства элемента карты» («Просмотр»> «Панели»> «Свойства элемента»). Разверните раздел «Положение и размер». Обратите внимание на поля X, Y, Width и Height; они определяют исходную точку и расширение карты на странице. Поскольку мы хотим, чтобы размер карты был равен размеру страницы, мы вводим значения размера страницы. Например, размеры бумаги формата А4 составляют 210 мм x 297 мм ( http://www.papersizes.org/a-paper-sizes.htm ). Поэтому для портретно-ориентированной карты введите: X = 0, Y = 0, Ширина = 210, Высота = 297
- эти значения предполагают, что «Контрольная точка» отмечена на северо-западе.
Обратите внимание, как карта заполняет всю страницу. Теперь при экспорте в PDF базовое изображение базовой карты не будет смещено.