Мне нужно добавить текст с информацией об авторских правах на мою карту с открытыми файлами. На сайте есть кнопка для экспорта карты в PNG аналогично тому, как показано в http://openlayers.org/en/latest/examples/export-map.html Итак, текст с текстом должен быть включен и на экспортированную карту PNG.Печать Текст, относящийся к авторскому праву, прямо в холст OpenLayers
Следовательно, я не могу использовать наложение html для текста авторского права, но должен печатать текст непосредственно в холсте, потому что материал «Экспортировано в PNG» работает с экспортом только того, что находится в холсте (без элементов управления html или html overlays).
Я пробовал два подхода. Оба не работают;)
Использование ol.source.ImageCanvas, как показано в этом jsfiddle. Проблема заключается в том, что при масштабировании или выходе, тогда текст прыгает. Но текст должен быть просто статичным.
По получению OpenLayers холста после OpenLayers имеет инициализирован, а затем с помощью этого холста непосредственно.
Вот код для 2-го подхода, который запускается после OpenLayers сделал свое initilisation:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
context.fillText('© My Copyright Text'), 500, 600);
Это печатает только вообще ничего, и я понятия не имею, почему. Есть ли что-то особенное, когда «писать» на холст с открытыми слоями?
Итак, что было бы лучшим подходом для добавления простого текста к холсту карты?
спасибо за ответ. Я вижу небольшой конфликт - вы сначала написали, чтобы использовать 'postrender', но затем в вашем коде вы используете' postcompose'. Какое событие будет использовать? Для меня, глядя на источник OL, кажется, что 'postcompose' более тесно связан с рендерингом canvas. –