Dla przyszłych czytelników, którzy oglądają ten post, ten błąd nadal występuje w wersji 2.12. Oto wizualny przykład błędu, zrzut ekranu z pliku pdf, który utworzyłem za pomocą Print Composer. Wszystkie warstwy, a także mapa bazowa obrazów Bing, były w formacie EPSG: 3857 (WGS 84 / Pseudo Mercator). Zauważyłem na czerwono, jak zmieniły się podstawowe zdjęcia. To przesunięcie występuje tylko w danych wyjściowych Print Composer; wszędzie indziej jest wyrównany poprawnie. Z pewnością wygląda to na przesunięcie punktu odniesienia:
Ale to nie jest zmiana odniesienia. To błąd Print Composer, który zmienia lokalizację mapy dowolnej (wszystko? Nie jestem pewien. Przynajmniej Bing Aerial) mapy bazowej OpenLayers po wyeksportowaniu do pliku pdf (chyba też png). Ale to przesunięcie występuje tylko wtedy, gdy margines wokół mapy w Print Composer - tzn. Obszar mapy jest mniejszy niż rozmiar papieru. Nawet o milimetr (dziwne, co?)
Na szczęście wyjaśnienie Shankara (dzięki!) Zapewnia obejście tego problemu. Rozszerzę jego odpowiedź następującymi szczegółami:
Aby obejść ten błąd, jeśli dodasz mapę do Print Composer, która zawiera mapę bazową OpenLayers, mapa musi wypełnić cały rozmiar strony, bez marginesów (jest to niefortunne, ponieważ białe pola wokół mapy mogą pomóc wizualnie). Aby wypełnić stronę, przejdź do panelu Właściwości elementu na mapie (Widok> Panele> Właściwości elementu, zaznaczone). Rozwiń sekcję „Pozycja i rozmiar”. Zwróć uwagę na pola X, Y, Szerokość i Wysokość; określają punkt początkowy i rozszerzenie mapy na stronie. Ponieważ chcemy, aby rozmiar mapy był równy rozmiarowi strony, wprowadzamy wartości rozmiaru strony. Na przykład wymiary papieru A4 wynoszą 210 mm x 297 mm ( http://www.papersizes.org/a-paper-sizes.htm ). W przypadku mapy zorientowanej na portret wprowadź: X = 0, Y = 0, szerokość = 210, wysokość = 297
- wartości te zakładają, że „Punkt odniesienia” jest zaznaczony do pola północno-zachodniego.
Zauważ, jak mapa wypełnia całą stronę. Teraz podczas eksportowania do pliku PDF obraz mapy bazowej nie zostanie przesunięty.