From fbc63aa747fbef075960d348ff967e49c2b3d84a Mon Sep 17 00:00:00 2001 From: Adam Cox Date: Wed, 30 Sep 2026 11:08:41 -0500 Subject: [PATCH 1/4] set default extent to layer extent, not gcps --- .../src/components/interfaces/Georeferencer.svelte | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte index ff038729..0c625740 100644 --- a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte +++ b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte @@ -117,13 +117,8 @@ let currentPreviewId; let defaultExtent; - if (REGION.gcps_geojson) { - defaultExtent = new VectorSource({ - features: new GeoJSON().readFeatures(REGION.gcps_geojson, { - dataProjection: 'EPSG:4326', - featureProjection: 'EPSG:3857', - }), - }).getExtent(); + if (REGION.layer?.extent) { + defaultExtent = transformExtent(REGION.layer.extent, 'EPSG:4326', 'EPSG:3857'); } else if (MAP.extent) { defaultExtent = transformExtent(MAP.extent, 'EPSG:4326', 'EPSG:3857'); } else { From ce747fe266ae19e818502d840bd9196e50dd5e76 Mon Sep 17 00:00:00 2001 From: Adam Cox Date: Wed, 30 Sep 2026 11:10:08 -0500 Subject: [PATCH 2/4] set helmert to default for all users, small refactor transformation lookup --- .../interfaces/Georeferencer.svelte | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte index 0c625740..2b8b43f9 100644 --- a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte +++ b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte @@ -163,28 +163,26 @@ const noteInputElId = 'note-input'; - let currentTransformation = 'poly1'; - let minGCPs = 3; - $: transformations = [ - { - id: 'poly1', - name: 'Polynomial', + // the list to iterate for dropdown display + let currentTransformation = 'helmert'; + $: transformationLookup = { + poly1: { + name: "Polynomial (1st order)", enabled: true, - available: true + gcpMin: 3, }, - { - id: 'tps', - name: 'Thin Plate Spline', + tps: { + name: "Thin Plate Spline", enabled: true, - available: true + gcpMin: 3, }, - { - id: 'helmert', - name: 'Helmert 4-param', - enabled: gcpList.length == 2, - available: CONTEXT.user.perms.includes("core.use_helmert") + helmert: { + name: "Helmert (4-param)", + enabled: gcpList.length <= 2, + gcpMin: 2, }, - ]; + } + $: minGCPs = transformationLookup[currentTransformation].gcpMin; let currentTargetProjection = 'EPSG:3857'; const availableProjections = [ @@ -562,7 +560,7 @@ }); previewMode = 'transparent'; } - currentTransformation = REGION.transformation ? REGION.transformation : 'poly1'; + if (REGION.transformation) {currentTransformation = REGION.transformation}; syncGCPList(); docViewer.resetExtent(); mapViewer.resetExtent(); @@ -656,10 +654,8 @@ if (gcpList.length == 3 && currentTransformation == "helmert") { currentTransformation = "poly1"; } - if (currentTransformation == "helmert") { - minGCPs = 2; - } else { - minGCPs = 3; + if (gcpList.length == 2) { + currentTransformation = "helmert"; } if (gcpList.length <= 2 && currentTransformation != "helmert") { previewMode = "n/a" @@ -833,11 +829,6 @@ function getPreview() { getMeasures() - if (currentTransformation == "helmert") { - minGCPs = 2; - } else { - minGCPs = 3; - } if (gcpList.length < minGCPs) { previewMode = 'n/a'; return; @@ -1193,10 +1184,8 @@ From 5cc0b7f4c3b3c23172403e35691d44360bb73931 Mon Sep 17 00:00:00 2001 From: Adam Cox Date: Wed, 30 Sep 2026 11:10:51 -0500 Subject: [PATCH 3/4] don't show keymap if region has already been georeferenced --- .../src/components/interfaces/Georeferencer.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte index 2b8b43f9..45d1f361 100644 --- a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte +++ b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte @@ -349,7 +349,7 @@ ]; let currentRefLayer = 'none'; - if (kmLayerGroup) { + if (kmLayerGroup && !REGION.layer) { currentRefLayer = 'keyMap50'; } From 6858ad05892f1b92fd26292ab1fad1bdb47f1138 Mon Sep 17 00:00:00 2001 From: Adam Cox Date: Wed, 30 Sep 2026 11:11:07 -0500 Subject: [PATCH 4/4] small cleanup --- .../src/components/interfaces/Georeferencer.svelte | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte index 45d1f361..154a9785 100644 --- a/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte +++ b/ohmg/frontend/svelte_components/src/components/interfaces/Georeferencer.svelte @@ -273,7 +273,7 @@ // items needed by layers and map const docExtent = extentFromImageSize(REGION.image_size); const docProjection = projectionFromImageExtent(docExtent); - const documentLayer = makeImageLayer(REGION.urls.image, docProjection, docExtent); + const docLayer = makeImageLayer(REGION.urls.image, docProjection, docExtent); let previewLayer = new TileLayer({ source: new XYZ(), @@ -446,7 +446,7 @@ maxZoom: 8, }), ); - docViewer.addLayer(documentLayer); + docViewer.addLayer(docLayer); docViewer.addLayer(docGCPLayer); // add control @@ -457,7 +457,6 @@ return containsXY(docExtent, mapBrowserEvent.coordinate[0], mapBrowserEvent.coordinate[1]); } - docViewer.addInteraction('draw', makeDrawInteraction(docGCPSource, drawWithinDocCondition, emptyStyle)); docViewer.addInteraction('modify', makeModifyInteraction(docGCPSource, docViewer.element, debounce((e) => {getMeasures()}, 8))); @@ -1152,8 +1151,8 @@ {/if} {#if showSettingsPanel}