You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
param_line.setHelp(self.tr('The road or rail line to follow.'))
104
+
105
+
106
+
param_scale=QgsProcessingParameterNumber(
107
+
self.INPUT_SCALE,
108
+
self.tr('Map Scale (e.g., 1000)'),
109
+
QgsProcessingParameterNumber.Integer,
110
+
defaultValue=1000
111
+
)
112
+
param_scale.setHelp(self.tr('Enter the denominator of the map scale (e.g., 1000 for 1:1000).'))
113
+
self.addParameter(param_scale)
114
+
115
+
param_long=QgsProcessingParameterNumber(
116
+
self.INPUT_PAPER_LONG_MM,
117
+
self.tr('Paper Long Axis (Usable mm)'),
118
+
QgsProcessingParameterNumber.Double,
119
+
defaultValue=410.0
120
+
)
121
+
param_long.setHelp(self.tr('The dimension of the paper you want aligned parallel to the road (in millimeters).\n\nExample: For a 420mm A3 sheet with 5mm margins, use 410.'))
122
+
self.addParameter(param_long)
123
+
124
+
param_short=QgsProcessingParameterNumber(
125
+
self.INPUT_PAPER_SHORT_MM,
126
+
self.tr('Paper Short Axis (Usable mm)'),
127
+
QgsProcessingParameterNumber.Double,
128
+
defaultValue=287.0
129
+
)
130
+
param_short.setHelp(self.tr('The dimension of the paper perpendicular to the road (in millimeters).\n\Example: For a 297mm A3 sheet with 5mm margins, use 287.'))
131
+
self.addParameter(param_short)
132
+
133
+
param_overlap=QgsProcessingParameterNumber(
134
+
self.INPUT_OVERLAP,
135
+
self.tr('Overlap (in meters)'),
136
+
QgsProcessingParameterNumber.Double,
137
+
defaultValue=50.0
138
+
)
139
+
param_overlap.setHelp(self.tr('The real-world overlap distance between atlas pages (in meters).'))
140
+
self.addParameter(param_overlap)
141
+
142
+
# --- Outputs ---
143
+
144
+
param_out_pts=QgsProcessingParameterFeatureSink(
145
+
self.OUTPUT_POINTS,
146
+
self.tr('Atlas Points')
147
+
)
148
+
param_out_pts.setHelp(self.tr('Output point layer to be used as the atlas coverage layer. Contains the "angle" field for rotation.'))
149
+
self.addParameter(param_out_pts)
150
+
151
+
param_out_poly=QgsProcessingParameterFeatureSink(
152
+
self.OUTPUT_POLYGONS,
153
+
self.tr('Atlas Coverage Polygons')
154
+
)
155
+
param_out_poly.setHelp(self.tr('Output polygon layer showing the footprint of each atlas page. Useful for an index map.'))
raiseQgsProcessingException(self.tr('Overlap ({0}m) is larger than or equal to the real-world long axis ({1}m). Please reduce overlap or check paper size.').format(overlap, real_long_m))
185
+
186
+
iffeedback.isCanceled():
187
+
return {}
188
+
189
+
# --- 3. Run "Points along geometry" ---
190
+
feedback.pushInfo(self.tr('Generating points along line...'))
191
+
192
+
# If input is 3D (25D), we must make sure the output is 2D for the atlas
193
+
# This removes the Z and M values from the geometry
0 commit comments