ol-print-layout-control
Add this OpenLayers-Control to your OpenLayers-Map.
It Helps the user to define a map area that fits to the desired output page format and orientation.
Works with ol@^7.0.0.
https://user-images.githubusercontent.com/2814068/195790425-99978d1a-6619-47a9-93b5-8c642664af5e.mp4
Usage
Browser
Load ol-print-layout-control.js
after OpenLayers.
It will be available as new ol.control.PrintLayout()
<script src="https://unpkg.com/@giscience/ol-print-layout-control"></script>
<link rel="stylesheet" href="https://unpkg.com/@giscience/ol-print-layout-control/dist/ol-print-layout-control.css" />
<script>
const map = new ol.Map({
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([8.68, 49.41]),
zoom: 15
}),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
]
});
const printLayoutControl = new ol.control.PrintLayout({
format: PAPER_FORMAT.A3,
orientation: ORIENTATION.LANDSCAPE,
margin: {top: 2, bottom: 2, left: 2, right: 2}
});
map.addControl(printLayoutControl);
</script>
Typescript and bundlers
Install the npm package: @giscience/ol-print-layout-control
After import
from the module it will be available as new PrintLayout()
.
npm install @giscience/ol-print-layout-control
Docs
Table of Contents
PrintLayout
Extends Control
The print-layout-control. Add an instance of this to your OpenLayers Map.
Parameters
-
opt_options
Options (optional, default{}
) -
Options
{format: 'A4', orientation: 'portrait', margin: {top: 2, bottom: 2, left: 2, right: 2}}] opt_options
getOrientation
setOrientation
Parameters
-
orientation
ORIENTATION
getFormat
setFormat
Parameters
-
format
any
getMargin
Returns Margin
setMargin
Parameters
-
margin
Margin
getBbox
getBboxAsLonLat
getScaleDenominator
Computes the scale denominator for the printed map
getPrintBoxSizeInDots
Get the print box size (width, height) in dots (px) for printing.
This is useful to determine the OGC-WMS params 'WIDTH' and 'HEIGHT'
Parameters
-
dpi
{number} the desired print resolution in dots-per-inch (dpi) (optional, default192
)
Returns {width: number, height: number}
getPrintBoxSizeInMM
MarginProps
Type: {top: number, bottom: number, left: number, right: number}
Properties
Margin
Extends OlObject
The Margin Class to set paper margins in cm.
Parameters
-
marginProps
Partial<MarginProps> (optional, default{}
)
getProperties
Returns MarginProps
getTop
setTop
Parameters
-
topMarginInCm
number
getBottom
setBottom
Parameters
-
bottomMarginInCm
number
getLeft
setLeft
Parameters
-
leftMarginInCm
number
getRight
setRight
Parameters
-
rightMarginInCm
number
Related
Originally ol-print-layout-control
has been developed for the
SketchMapTool.