Merge master
This commit is contained in:
commit
12059bbc1a
5 changed files with 24 additions and 12 deletions
|
@ -75,6 +75,13 @@ export default class FeatureSwitchState extends OsmConnectionFeatureSwitches {
|
|||
layoutToUse?.enableUserBadge ?? true,
|
||||
"Disables/Enables logging in and thus disables editing all together. This effectively puts MapComplete into read-only mode."
|
||||
)
|
||||
{
|
||||
if(QueryParameters.wasInitialized("fs-userbadge")){
|
||||
// userbadge is the legacy name for 'enable-login'
|
||||
this.featureSwitchEnableLogin.setData(QueryParameters.GetBooleanQueryParameter("fs-userbadge", undefined, "Legacy").data)
|
||||
}
|
||||
}
|
||||
|
||||
this.featureSwitchSearch = FeatureSwitchUtils.initSwitch(
|
||||
"fs-search",
|
||||
layoutToUse?.enableSearch ?? true,
|
||||
|
|
|
@ -17,5 +17,9 @@ export interface MapProperties {
|
|||
}
|
||||
|
||||
export interface ExportableMap {
|
||||
exportAsPng(dpiFactor: number): Promise<Blob>
|
||||
/**
|
||||
* Export the current map as PNG.
|
||||
* @param markerScale: if given, the markers will be 'markerScale' bigger. This is to use in combination with a supersized canvas to have more pixels and achieve print quality
|
||||
*/
|
||||
exportAsPng(markerScale?: number): Promise<Blob>
|
||||
}
|
||||
|
|
|
@ -224,7 +224,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
|||
return url
|
||||
}
|
||||
|
||||
public async exportAsPng(dpiFactor: number): Promise<Blob> {
|
||||
public async exportAsPng(markerScale: number = 1): Promise<Blob> {
|
||||
const map = this._maplibreMap.data
|
||||
if (!map) {
|
||||
return undefined
|
||||
|
@ -235,14 +235,14 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap {
|
|||
|
||||
const ctx = drawOn.getContext("2d")
|
||||
// Set up CSS size.
|
||||
MapLibreAdaptor.setDpi(drawOn, ctx, dpiFactor / map.getPixelRatio())
|
||||
MapLibreAdaptor.setDpi(drawOn, ctx, markerScale / map.getPixelRatio())
|
||||
|
||||
await this.exportBackgroundOnCanvas(ctx)
|
||||
|
||||
// MapLibreAdaptor.setDpi(drawOn, ctx, 1)
|
||||
const markers = await this.drawMarkers(dpiFactor)
|
||||
const markers = await this.drawMarkers(markerScale)
|
||||
ctx.drawImage(markers, 0, 0, drawOn.width, drawOn.height)
|
||||
ctx.scale(dpiFactor, dpiFactor)
|
||||
ctx.scale(markerScale, markerScale)
|
||||
this._maplibreMap.data?.resize()
|
||||
return await new Promise<Blob>((resolve) => drawOn.toBlob((blob) => resolve(blob)))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue