Вам нужно будет добавить @media
отпечаток и указать размер карты при печати, а затем вы можете сделать то, что объясняется ниже.
При печати карты происходит то, что в левом верхнем углусохраняется, и карта настраивается в соответствии с размером печати @media
.
Если вы хотите, чтобы центр оставался неизменным, вам нужно вручную изменить центр карты.http://jsbin.com/owiwox/33 - пример того, как обойти это.
Он использует прослушиватель для события применяемого материала для печати и корректирует центр карты, используя отношение изменения карты (стало меньше)
Одна вещь, о которой вам нужно позаботиться, это то, что вам, возможно, придется настроить этот браузер так, чтобы он работал на всех браузерах (это решение хорошо работает в Chrome). Хороший ресурс для того, чтобы заставить его работатьво всех браузерах: http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/
Код js из приведенного выше примера прослушивает запросы на печать и сдвигает карту так, чтобы верхний левый угол имел тот же центр, что и большая карта.
Короче говоря, вот как это работает.
Вам необходимо указать соотношение карты к печатной карте (или получить размер, проверивэто из JS) Вы назначаете это: var widthRatio = 2;var heightRatio = 3;
Вы прослушиваете применяемый материал для печати и смещаете центр, чтобы он не менялся
- После завершения печати вы отменяете изменение.
Тем не менее, здесь у вас есть проблема с тем, что часть карты будет обрезана, но здесь нет хорошего решения, так как плитки уровня масштабирования -1 могут не кэшироваться, поэтому при уменьшении масштабачтобы соответствовать границам, вы можете не получить плитки.