diff --git a/src/plugins/layers/useGrayLine.js b/src/plugins/layers/useGrayLine.js
index 719815b..41bf38f 100644
--- a/src/plugins/layers/useGrayLine.js
+++ b/src/plugins/layers/useGrayLine.js
@@ -567,69 +567,49 @@ export function useLayer({ enabled = false, opacity = 0.5, map = null }) {
const upperSegments = splitAtDateLine(enhancedUpper);
const lowerSegments = splitAtDateLine(enhancedLower);
- // For each upper segment, find corresponding lower segment and create polygon
- // If there's only one segment in each, create single polygon
- if (upperSegments.length === 1 && lowerSegments.length === 1) {
- // No date line crossing - create single polygon
- const enhancedZone = [...upperSegments[0], ...lowerSegments[0].reverse()];
- const enhancedPoly = L.polygon(enhancedZone, {
- color: '#ffaa00',
- fillColor: '#ffaa00',
- fillOpacity: opacity * 0.15,
- weight: 1,
- opacity: opacity * 0.3
- });
- enhancedPoly.bindPopup(`
-
- ⭐ Enhanced DX Zone
- Best HF propagation window
- ±5° from terminator
- Ideal for long-distance contacts
-
- `);
- enhancedPoly.addTo(map);
- newLayers.push(enhancedPoly);
- } else {
- // Date line crossing - create multiple polygons
- // Match segments by their longitude ranges
- upperSegments.forEach((upperSeg, i) => {
- // Find matching lower segment with similar longitude range
- const upperLons = upperSeg.map(p => p[1]);
- const upperMinLon = Math.min(...upperLons);
- const upperMaxLon = Math.max(...upperLons);
+ console.log('🔶 Enhanced DX Zone segments:', {
+ upperCount: upperSegments.length,
+ lowerCount: lowerSegments.length,
+ upperSegmentLengths: upperSegments.map(s => s.length),
+ lowerSegmentLengths: lowerSegments.map(s => s.length)
+ });
+
+ // Create polygon for each corresponding segment pair
+ // Both upper and lower should have same number of segments
+ const numSegments = Math.min(upperSegments.length, lowerSegments.length);
+
+ for (let i = 0; i < numSegments; i++) {
+ const upperSeg = upperSegments[i];
+ const lowerSeg = lowerSegments[i];
+
+ if (upperSeg.length > 1 && lowerSeg.length > 1) {
+ // Create polygon from upper segment + reversed lower segment
+ const enhancedZone = [...upperSeg, ...lowerSeg.reverse()];
- // Find lower segment that overlaps with this upper segment
- const matchingLowerSeg = lowerSegments.find(lowerSeg => {
- const lowerLons = lowerSeg.map(p => p[1]);
- const lowerMinLon = Math.min(...lowerLons);
- const lowerMaxLon = Math.max(...lowerLons);
-
- // Check for longitude overlap
- return (lowerMinLon <= upperMaxLon && lowerMaxLon >= upperMinLon) ||
- (upperMinLon <= lowerMaxLon && upperMaxLon >= lowerMinLon);
+ console.log(`🔶 Creating Enhanced DX polygon segment ${i+1}/${numSegments}:`, {
+ upperPoints: upperSeg.length,
+ lowerPoints: lowerSeg.length,
+ totalPolygonPoints: enhancedZone.length
});
- if (matchingLowerSeg && matchingLowerSeg.length > 1) {
- const enhancedZone = [...upperSeg, ...matchingLowerSeg.reverse()];
- const enhancedPoly = L.polygon(enhancedZone, {
- color: '#ffaa00',
- fillColor: '#ffaa00',
- fillOpacity: opacity * 0.15,
- weight: 1,
- opacity: opacity * 0.3
- });
- enhancedPoly.bindPopup(`
-
- ⭐ Enhanced DX Zone
- Best HF propagation window
- ±5° from terminator
- Ideal for long-distance contacts
-
- `);
- enhancedPoly.addTo(map);
- newLayers.push(enhancedPoly);
- }
- });
+ const enhancedPoly = L.polygon(enhancedZone, {
+ color: '#ffaa00',
+ fillColor: '#ffaa00',
+ fillOpacity: opacity * 0.15,
+ weight: 1,
+ opacity: opacity * 0.3
+ });
+ enhancedPoly.bindPopup(`
+
+ ⭐ Enhanced DX Zone
+ Best HF propagation window
+ ±5° from terminator
+ Ideal for long-distance contacts
+
+ `);
+ enhancedPoly.addTo(map);
+ newLayers.push(enhancedPoly);
+ }
}
}
}