From 16d4f8587e40b29543e3bb8b0f1d36d4b8edd081 Mon Sep 17 00:00:00 2001 From: Marwin Hochfelsner <50826859+hlfan@users.noreply.github.com> Date: Thu, 5 Jun 2025 03:46:02 +0200 Subject: [PATCH] Restructure featureGeometry for clarity --- app/assets/javascripts/index/query.js | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/index/query.js b/app/assets/javascripts/index/query.js index e6a1b6e1c..4459546d8 100644 --- a/app/assets/javascripts/index/query.js +++ b/app/assets/javascripts/index/query.js @@ -119,23 +119,17 @@ OSM.Query = function (map) { } function featureGeometry(feature) { - let geometry; - - if (feature.type === "node" && feature.lat && feature.lon) { - geometry = L.circleMarker([feature.lat, feature.lon], featureStyle); - } else if (feature.type === "way" && feature.geometry && feature.geometry.length > 0) { - geometry = L.polyline(feature.geometry.filter(function (point) { - return point !== null; - }).map(function (point) { - return [point.lat, point.lon]; - }), featureStyle); - } else if (feature.type === "relation" && feature.members) { - geometry = L.featureGroup(feature.members.map(featureGeometry).filter(function (geometry) { - return typeof geometry !== "undefined"; - })); + switch (feature.type) { + case "node": + if (!feature.lat || !feature.lon) return; + return L.circleMarker([feature.lat, feature.lon], featureStyle); + case "way": + if (!feature.geometry?.length) return; + return L.polyline(feature.geometry.filter(p => p).map(p => [p.lat, p.lon]), featureStyle); + case "relation": + if (!feature.members?.length) return; + return L.featureGroup(feature.members.map(featureGeometry).filter(g => g)); } - - return geometry; } function runQuery(latlng, radius, query, $section, merge, compare) { -- 2.39.5