refactor: merge distanceToCountry + distanceToWater → distanceToFeature() #74

Closed
opened 2026-04-12 16:10:34 +02:00 by Ghost · 1 comment
Ghost commented 2026-04-12 16:10:34 +02:00 (Migrated from codeberg.org)

Probleem

distanceToCountry() en distanceToWater() doen hetzelfde: afstand van een punt tot een polygoon/lijn berekenen via pointInPolygon + pointToSegmentDist-loop. Alleen de featureData-variabele verschilt.

Oplossing

Eén helper:

function distanceToFeature(lat, lon, name, featureData) {
  const features = featureData.features.filter(
    f => f.properties.name === name || f.properties.statnaam === name
  );
  // ... bestaande pointInPolygon + pointToSegmentDist logica
}

// Gebruik:
distanceToFeature(lat, lon, name, waterFeatureData);
distanceToFeature(lat, lon, name, countryFeatureData);

Impact

  • ~20 regels duplicate polygoon-wiskunde verwijderd
  • Toekomstige types (gebergten, eilanden) gebruiken direct dezelfde helper

Risico

Laag. Klik-op-kaart tests voor set 57 (wateren) en set 71 (landen) zijn de regressiecheck.

Afhankelijkheid

Doe na #67 (polygonTypes-register) — dan kan de helper ook featureData ophalen via het register.

Zie REFACTORING.md voorstel #10

## Probleem `distanceToCountry()` en `distanceToWater()` doen hetzelfde: afstand van een punt tot een polygoon/lijn berekenen via `pointInPolygon` + `pointToSegmentDist`-loop. Alleen de featureData-variabele verschilt. ## Oplossing Eén helper: ```js function distanceToFeature(lat, lon, name, featureData) { const features = featureData.features.filter( f => f.properties.name === name || f.properties.statnaam === name ); // ... bestaande pointInPolygon + pointToSegmentDist logica } // Gebruik: distanceToFeature(lat, lon, name, waterFeatureData); distanceToFeature(lat, lon, name, countryFeatureData); ``` ## Impact - ~20 regels duplicate polygoon-wiskunde verwijderd - Toekomstige types (gebergten, eilanden) gebruiken direct dezelfde helper ## Risico Laag. Klik-op-kaart tests voor set 57 (wateren) en set 71 (landen) zijn de regressiecheck. ## Afhankelijkheid Doe na #67 (polygonTypes-register) — dan kan de helper ook `featureData` ophalen via het register. _Zie REFACTORING.md voorstel #10_
Ghost commented 2026-04-12 21:20:59 +02:00 (Migrated from codeberg.org)

Geïmplementeerd in refactor-commit 96e1a18.

Geïmplementeerd in refactor-commit 96e1a18.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jelmer/topoquiz#74
No description provided.