mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
Merge pull request #4996 from nyalldawson/spelling_and_stuff
Fix some spelling, add parameter names to tooltips in processing
This commit is contained in:
commit
f802c56573
@ -618,7 +618,7 @@ Test for containment of a point (uses GEOS)
|
|||||||
enum JoinStyle
|
enum JoinStyle
|
||||||
{
|
{
|
||||||
JoinStyleRound,
|
JoinStyleRound,
|
||||||
JoinStyleMitre,
|
JoinStyleMiter,
|
||||||
JoinStyleBevel,
|
JoinStyleBevel,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -629,32 +629,32 @@ of segments used to approximate curves *
|
|||||||
:rtype: QgsGeometry
|
:rtype: QgsGeometry
|
||||||
%End
|
%End
|
||||||
|
|
||||||
QgsGeometry buffer( double distance, int segments, EndCapStyle endCapStyle, JoinStyle joinStyle, double mitreLimit ) const;
|
QgsGeometry buffer( double distance, int segments, EndCapStyle endCapStyle, JoinStyle joinStyle, double miterLimit ) const;
|
||||||
%Docstring
|
%Docstring
|
||||||
Returns a buffer region around the geometry, with additional style options.
|
Returns a buffer region around the geometry, with additional style options.
|
||||||
\param distance buffer distance
|
\param distance buffer distance
|
||||||
\param segments for round joins, number of segments to approximate quarter-circle
|
\param segments for round joins, number of segments to approximate quarter-circle
|
||||||
\param endCapStyle end cap style
|
\param endCapStyle end cap style
|
||||||
\param joinStyle join style for corners in geometry
|
\param joinStyle join style for corners in geometry
|
||||||
\param mitreLimit limit on the mitre ratio used for very sharp corners (JoinStyleMitre only)
|
\param miterLimit limit on the miter ratio used for very sharp corners (JoinStyleMiter only)
|
||||||
.. versionadded:: 2.4
|
.. versionadded:: 2.4
|
||||||
:rtype: QgsGeometry
|
:rtype: QgsGeometry
|
||||||
%End
|
%End
|
||||||
|
|
||||||
QgsGeometry offsetCurve( double distance, int segments, JoinStyle joinStyle, double mitreLimit ) const;
|
QgsGeometry offsetCurve( double distance, int segments, JoinStyle joinStyle, double miterLimit ) const;
|
||||||
%Docstring
|
%Docstring
|
||||||
Returns an offset line at a given distance and side from an input line.
|
Returns an offset line at a given distance and side from an input line.
|
||||||
\param distance buffer distance
|
\param distance buffer distance
|
||||||
\param segments for round joins, number of segments to approximate quarter-circle
|
\param segments for round joins, number of segments to approximate quarter-circle
|
||||||
\param joinStyle join style for corners in geometry
|
\param joinStyle join style for corners in geometry
|
||||||
\param mitreLimit limit on the mitre ratio used for very sharp corners (JoinStyleMitre only)
|
\param miterLimit limit on the miter ratio used for very sharp corners (JoinStyleMiter only)
|
||||||
.. versionadded:: 2.4
|
.. versionadded:: 2.4
|
||||||
:rtype: QgsGeometry
|
:rtype: QgsGeometry
|
||||||
%End
|
%End
|
||||||
|
|
||||||
QgsGeometry singleSidedBuffer( double distance, int segments, BufferSide side,
|
QgsGeometry singleSidedBuffer( double distance, int segments, BufferSide side,
|
||||||
JoinStyle joinStyle = JoinStyleRound,
|
JoinStyle joinStyle = JoinStyleRound,
|
||||||
double mitreLimit = 2.0 ) const;
|
double miterLimit = 2.0 ) const;
|
||||||
%Docstring
|
%Docstring
|
||||||
Returns a single sided buffer for a (multi)line geometry. The buffer is only
|
Returns a single sided buffer for a (multi)line geometry. The buffer is only
|
||||||
applied to one side of the line.
|
applied to one side of the line.
|
||||||
@ -662,7 +662,7 @@ of segments used to approximate curves *
|
|||||||
\param segments for round joins, number of segments to approximate quarter-circle
|
\param segments for round joins, number of segments to approximate quarter-circle
|
||||||
\param side side of geometry to buffer
|
\param side side of geometry to buffer
|
||||||
\param joinStyle join style for corners
|
\param joinStyle join style for corners
|
||||||
\param mitreLimit limit on the mitre ratio used for very sharp corners
|
\param miterLimit limit on the miter ratio used for very sharp corners
|
||||||
:return: buffered geometry, or an empty geometry if buffer could not be
|
:return: buffered geometry, or an empty geometry if buffer could not be
|
||||||
calculated
|
calculated
|
||||||
.. versionadded:: 3.0
|
.. versionadded:: 3.0
|
||||||
|
@ -50,7 +50,7 @@ class QgsGeometryEngine
|
|||||||
%Docstring
|
%Docstring
|
||||||
:rtype: QgsAbstractGeometry
|
:rtype: QgsAbstractGeometry
|
||||||
%End
|
%End
|
||||||
virtual QgsAbstractGeometry *buffer( double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit, QString *errorMsg = 0 ) const = 0 /Factory/;
|
virtual QgsAbstractGeometry *buffer( double distance, int segments, int endCapStyle, int joinStyle, double miterLimit, QString *errorMsg = 0 ) const = 0 /Factory/;
|
||||||
%Docstring
|
%Docstring
|
||||||
:rtype: QgsAbstractGeometry
|
:rtype: QgsAbstractGeometry
|
||||||
%End
|
%End
|
||||||
@ -170,7 +170,7 @@ class QgsGeometryEngine
|
|||||||
:rtype: int
|
:rtype: int
|
||||||
%End
|
%End
|
||||||
|
|
||||||
virtual QgsAbstractGeometry *offsetCurve( double distance, int segments, int joinStyle, double mitreLimit, QString *errorMsg = 0 ) const = 0 /Factory/;
|
virtual QgsAbstractGeometry *offsetCurve( double distance, int segments, int joinStyle, double miterLimit, QString *errorMsg = 0 ) const = 0 /Factory/;
|
||||||
%Docstring
|
%Docstring
|
||||||
:rtype: QgsAbstractGeometry
|
:rtype: QgsAbstractGeometry
|
||||||
%End
|
%End
|
||||||
|
@ -63,7 +63,7 @@ create renderer from XML element
|
|||||||
void setDataDefinedSizeLegend( QgsDataDefinedSizeLegend *settings /Transfer/ );
|
void setDataDefinedSizeLegend( QgsDataDefinedSizeLegend *settings /Transfer/ );
|
||||||
%Docstring
|
%Docstring
|
||||||
Configures appearance of legend when renderer is configured to use data-defined size for marker symbols.
|
Configures appearance of legend when renderer is configured to use data-defined size for marker symbols.
|
||||||
This allow to configure for which values (symbol sizes) should be shown in the legend, whether to display
|
This allows configuring which values (symbol sizes) should be shown in the legend, whether to display
|
||||||
different symbol sizes collapsed in one legend node or separated across multiple legend nodes etc.
|
different symbol sizes collapsed in one legend node or separated across multiple legend nodes etc.
|
||||||
|
|
||||||
When renderer does not use data-defined size or does not use marker symbols, these settings will be ignored.
|
When renderer does not use data-defined size or does not use marker symbols, these settings will be ignored.
|
||||||
|
@ -218,9 +218,9 @@ qgis:fixeddistancebuffer: >
|
|||||||
|
|
||||||
The end cap style parameter controls how line endings are handled in the buffer.
|
The end cap style parameter controls how line endings are handled in the buffer.
|
||||||
|
|
||||||
The join style parameter specifies whether round, mitre or beveled joins should be used when offsetting corners in a line.
|
The join style parameter specifies whether round, miter or beveled joins should be used when offsetting corners in a line.
|
||||||
|
|
||||||
The mitre limit parameter is only applicable for mitre join styles, and controls the maximum distance from the offset curve to use when creating a mitred join.
|
The miter limit parameter is only applicable for miter join styles, and controls the maximum distance from the offset curve to use when creating a mitered join.
|
||||||
|
|
||||||
qgis:fixgeometries: >
|
qgis:fixgeometries: >
|
||||||
This algorithm attempts to create a valid representation of a given invalid geometry without losing any of the input vertices. Already-valid geometries are returned without further intervention. Always outputs multi-geometry layer.
|
This algorithm attempts to create a valid representation of a given invalid geometry without losing any of the input vertices. Already-valid geometries are returned without further intervention. Always outputs multi-geometry layer.
|
||||||
@ -334,9 +334,9 @@ qgis:offsetline: >
|
|||||||
|
|
||||||
The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded offsets.
|
The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded offsets.
|
||||||
|
|
||||||
The join style parameter specifies whether round, mitre or beveled joins should be used when offsetting corners in a line.
|
The join style parameter specifies whether round, miter or beveled joins should be used when offsetting corners in a line.
|
||||||
|
|
||||||
The mitre limit parameter is only applicable for mitre join styles, and controls the maximum distance from the offset curve to use when creating a mitred join.
|
The miter limit parameter is only applicable for miter join styles, and controls the maximum distance from the offset curve to use when creating a mitered join.
|
||||||
|
|
||||||
qgis:orientedminimumboundingbox: >
|
qgis:orientedminimumboundingbox: >
|
||||||
This algorithm takes a vector layer and generate a new one with the minimum rectangle that covers all the input features.
|
This algorithm takes a vector layer and generate a new one with the minimum rectangle that covers all the input features.
|
||||||
@ -537,9 +537,9 @@ qgis:singlesidedbuffer: >
|
|||||||
|
|
||||||
The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded buffers.
|
The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded buffers.
|
||||||
|
|
||||||
The join style parameter specifies whether round, mitre or beveled joins should be used when buffering corners in a line.
|
The join style parameter specifies whether round, miter or beveled joins should be used when buffering corners in a line.
|
||||||
|
|
||||||
The mitre limit parameter is only applicable for mitre join styles, and controls the maximum distance from the buffer to use when creating a mitred join.
|
The miter limit parameter is only applicable for miter join styles, and controls the maximum distance from the buffer to use when creating a mitered join.
|
||||||
|
|
||||||
qgis:smoothgeometry: >
|
qgis:smoothgeometry: >
|
||||||
This algorithm smooths the geometries in a line or polygon layer. It creates a new layer with the same features as the ones in the input layer, but with geometries containing a higher number of vertices and corners in the geometries smoothed out.
|
This algorithm smooths the geometries in a line or polygon layer. It creates a new layer with the same features as the ones in the input layer, but with geometries containing a higher number of vertices and corners in the geometries smoothed out.
|
||||||
|
@ -32,7 +32,7 @@ from qgis.core import (QgsFeature,
|
|||||||
|
|
||||||
|
|
||||||
def buffering(feedback, context, sink, distance, field, useField, source, dissolve, segments, endCapStyle=1,
|
def buffering(feedback, context, sink, distance, field, useField, source, dissolve, segments, endCapStyle=1,
|
||||||
joinStyle=1, mitreLimit=2):
|
joinStyle=1, miterLimit=2):
|
||||||
|
|
||||||
if useField:
|
if useField:
|
||||||
field = source.fields().lookupField(field)
|
field = source.fields().lookupField(field)
|
||||||
@ -62,7 +62,7 @@ def buffering(feedback, context, sink, distance, field, useField, source, dissol
|
|||||||
|
|
||||||
inGeom = inFeat.geometry()
|
inGeom = inFeat.geometry()
|
||||||
|
|
||||||
buffered_geometries.append(inGeom.buffer(float(value), segments, endCapStyle, joinStyle, mitreLimit))
|
buffered_geometries.append(inGeom.buffer(float(value), segments, endCapStyle, joinStyle, miterLimit))
|
||||||
|
|
||||||
current += 1
|
current += 1
|
||||||
feedback.setProgress(int(current * total))
|
feedback.setProgress(int(current * total))
|
||||||
@ -86,7 +86,7 @@ def buffering(feedback, context, sink, distance, field, useField, source, dissol
|
|||||||
value = distance
|
value = distance
|
||||||
inGeom = inFeat.geometry()
|
inGeom = inFeat.geometry()
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
outGeom = inGeom.buffer(float(value), segments, endCapStyle, joinStyle, mitreLimit)
|
outGeom = inGeom.buffer(float(value), segments, endCapStyle, joinStyle, miterLimit)
|
||||||
outFeat.setGeometry(outGeom)
|
outFeat.setGeometry(outGeom)
|
||||||
outFeat.setAttributes(attrs)
|
outFeat.setAttributes(attrs)
|
||||||
sink.addFeature(outFeat, QgsFeatureSink.FastInsert)
|
sink.addFeature(outFeat, QgsFeatureSink.FastInsert)
|
||||||
|
@ -54,7 +54,7 @@ class FixedDistanceBuffer(QgisAlgorithm):
|
|||||||
DISSOLVE = 'DISSOLVE'
|
DISSOLVE = 'DISSOLVE'
|
||||||
END_CAP_STYLE = 'END_CAP_STYLE'
|
END_CAP_STYLE = 'END_CAP_STYLE'
|
||||||
JOIN_STYLE = 'JOIN_STYLE'
|
JOIN_STYLE = 'JOIN_STYLE'
|
||||||
MITRE_LIMIT = 'MITRE_LIMIT'
|
MITER_LIMIT = 'MITER_LIMIT'
|
||||||
|
|
||||||
def icon(self):
|
def icon(self):
|
||||||
return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'buffer.png'))
|
return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'buffer.png'))
|
||||||
@ -83,14 +83,14 @@ class FixedDistanceBuffer(QgisAlgorithm):
|
|||||||
self.tr('End cap style'),
|
self.tr('End cap style'),
|
||||||
options=self.end_cap_styles, defaultValue=0))
|
options=self.end_cap_styles, defaultValue=0))
|
||||||
self.join_styles = [self.tr('Round'),
|
self.join_styles = [self.tr('Round'),
|
||||||
'Mitre',
|
'Miter',
|
||||||
'Bevel']
|
'Bevel']
|
||||||
self.addParameter(QgsProcessingParameterEnum(
|
self.addParameter(QgsProcessingParameterEnum(
|
||||||
self.JOIN_STYLE,
|
self.JOIN_STYLE,
|
||||||
self.tr('Join style'),
|
self.tr('Join style'),
|
||||||
options=self.join_styles, defaultValue=0))
|
options=self.join_styles, defaultValue=0))
|
||||||
self.addParameter(QgsProcessingParameterNumber(self.MITRE_LIMIT,
|
self.addParameter(QgsProcessingParameterNumber(self.MITER_LIMIT,
|
||||||
self.tr('Mitre limit'), minValue=0, defaultValue=2))
|
self.tr('Miter limit'), minValue=0, defaultValue=2))
|
||||||
|
|
||||||
self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Buffer'), QgsProcessing.TypeVectorPolygon))
|
self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Buffer'), QgsProcessing.TypeVectorPolygon))
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ class FixedDistanceBuffer(QgisAlgorithm):
|
|||||||
segments = self.parameterAsInt(parameters, self.SEGMENTS, context)
|
segments = self.parameterAsInt(parameters, self.SEGMENTS, context)
|
||||||
end_cap_style = self.parameterAsEnum(parameters, self.END_CAP_STYLE, context) + 1
|
end_cap_style = self.parameterAsEnum(parameters, self.END_CAP_STYLE, context) + 1
|
||||||
join_style = self.parameterAsEnum(parameters, self.JOIN_STYLE, context) + 1
|
join_style = self.parameterAsEnum(parameters, self.JOIN_STYLE, context) + 1
|
||||||
miter_limit = self.parameterAsDouble(parameters, self.MITRE_LIMIT, context)
|
miter_limit = self.parameterAsDouble(parameters, self.MITER_LIMIT, context)
|
||||||
|
|
||||||
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
|
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
|
||||||
source.fields(), QgsWkbTypes.Polygon, source.sourceCrs())
|
source.fields(), QgsWkbTypes.Polygon, source.sourceCrs())
|
||||||
|
@ -45,7 +45,7 @@ class OffsetLine(QgisFeatureBasedAlgorithm):
|
|||||||
DISTANCE = 'DISTANCE'
|
DISTANCE = 'DISTANCE'
|
||||||
SEGMENTS = 'SEGMENTS'
|
SEGMENTS = 'SEGMENTS'
|
||||||
JOIN_STYLE = 'JOIN_STYLE'
|
JOIN_STYLE = 'JOIN_STYLE'
|
||||||
MITRE_LIMIT = 'MITRE_LIMIT'
|
MITER_LIMIT = 'MITER_LIMIT'
|
||||||
|
|
||||||
def group(self):
|
def group(self):
|
||||||
return self.tr('Vector geometry tools')
|
return self.tr('Vector geometry tools')
|
||||||
@ -68,14 +68,14 @@ class OffsetLine(QgisFeatureBasedAlgorithm):
|
|||||||
type=QgsProcessingParameterNumber.Integer,
|
type=QgsProcessingParameterNumber.Integer,
|
||||||
minValue=1, defaultValue=8))
|
minValue=1, defaultValue=8))
|
||||||
self.join_styles = [self.tr('Round'),
|
self.join_styles = [self.tr('Round'),
|
||||||
'Mitre',
|
'Miter',
|
||||||
'Bevel']
|
'Bevel']
|
||||||
self.addParameter(QgsProcessingParameterEnum(
|
self.addParameter(QgsProcessingParameterEnum(
|
||||||
self.JOIN_STYLE,
|
self.JOIN_STYLE,
|
||||||
self.tr('Join style'),
|
self.tr('Join style'),
|
||||||
options=self.join_styles))
|
options=self.join_styles))
|
||||||
self.addParameter(QgsProcessingParameterNumber(self.MITRE_LIMIT,
|
self.addParameter(QgsProcessingParameterNumber(self.MITER_LIMIT,
|
||||||
self.tr('Mitre limit'), type=QgsProcessingParameterNumber.Double,
|
self.tr('Miter limit'), type=QgsProcessingParameterNumber.Double,
|
||||||
minValue=1, defaultValue=2))
|
minValue=1, defaultValue=2))
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
@ -94,7 +94,7 @@ class OffsetLine(QgisFeatureBasedAlgorithm):
|
|||||||
self.distance = self.parameterAsDouble(parameters, self.DISTANCE, context)
|
self.distance = self.parameterAsDouble(parameters, self.DISTANCE, context)
|
||||||
self.segments = self.parameterAsInt(parameters, self.SEGMENTS, context)
|
self.segments = self.parameterAsInt(parameters, self.SEGMENTS, context)
|
||||||
self.join_style = self.parameterAsEnum(parameters, self.JOIN_STYLE, context) + 1
|
self.join_style = self.parameterAsEnum(parameters, self.JOIN_STYLE, context) + 1
|
||||||
self.miter_limit = self.parameterAsDouble(parameters, self.MITRE_LIMIT, context)
|
self.miter_limit = self.parameterAsDouble(parameters, self.MITER_LIMIT, context)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def processFeature(self, feature, feedback):
|
def processFeature(self, feature, feedback):
|
||||||
|
@ -40,7 +40,7 @@ class SingleSidedBuffer(QgisFeatureBasedAlgorithm):
|
|||||||
SIDE = 'SIDE'
|
SIDE = 'SIDE'
|
||||||
SEGMENTS = 'SEGMENTS'
|
SEGMENTS = 'SEGMENTS'
|
||||||
JOIN_STYLE = 'JOIN_STYLE'
|
JOIN_STYLE = 'JOIN_STYLE'
|
||||||
MITRE_LIMIT = 'MITRE_LIMIT'
|
MITER_LIMIT = 'MITER_LIMIT'
|
||||||
|
|
||||||
def group(self):
|
def group(self):
|
||||||
return self.tr('Vector geometry tools')
|
return self.tr('Vector geometry tools')
|
||||||
@ -55,7 +55,7 @@ class SingleSidedBuffer(QgisFeatureBasedAlgorithm):
|
|||||||
self.sides = [self.tr('Left'),
|
self.sides = [self.tr('Left'),
|
||||||
'Right']
|
'Right']
|
||||||
self.join_styles = [self.tr('Round'),
|
self.join_styles = [self.tr('Round'),
|
||||||
'Mitre',
|
'Miter',
|
||||||
'Bevel']
|
'Bevel']
|
||||||
|
|
||||||
def initParameters(self, config=None):
|
def initParameters(self, config=None):
|
||||||
@ -74,8 +74,8 @@ class SingleSidedBuffer(QgisFeatureBasedAlgorithm):
|
|||||||
self.JOIN_STYLE,
|
self.JOIN_STYLE,
|
||||||
self.tr('Join style'),
|
self.tr('Join style'),
|
||||||
options=self.join_styles))
|
options=self.join_styles))
|
||||||
self.addParameter(QgsProcessingParameterNumber(self.MITRE_LIMIT,
|
self.addParameter(QgsProcessingParameterNumber(self.MITER_LIMIT,
|
||||||
self.tr('Mitre limit'), minValue=1, defaultValue=2))
|
self.tr('Miter limit'), minValue=1, defaultValue=2))
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
return 'singlesidedbuffer'
|
return 'singlesidedbuffer'
|
||||||
@ -100,7 +100,7 @@ class SingleSidedBuffer(QgisFeatureBasedAlgorithm):
|
|||||||
self.side = QgsGeometry.SideLeft
|
self.side = QgsGeometry.SideLeft
|
||||||
else:
|
else:
|
||||||
self.side = QgsGeometry.SideRight
|
self.side = QgsGeometry.SideRight
|
||||||
self.miter_limit = self.parameterAsDouble(parameters, self.MITRE_LIMIT, context)
|
self.miter_limit = self.parameterAsDouble(parameters, self.MITER_LIMIT, context)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def processFeature(self, feature, feedback):
|
def processFeature(self, feature, feedback):
|
||||||
|
@ -53,7 +53,7 @@ class VariableDistanceBuffer(QgisAlgorithm):
|
|||||||
DISSOLVE = 'DISSOLVE'
|
DISSOLVE = 'DISSOLVE'
|
||||||
END_CAP_STYLE = 'END_CAP_STYLE'
|
END_CAP_STYLE = 'END_CAP_STYLE'
|
||||||
JOIN_STYLE = 'JOIN_STYLE'
|
JOIN_STYLE = 'JOIN_STYLE'
|
||||||
MITRE_LIMIT = 'MITRE_LIMIT'
|
MITER_LIMIT = 'MITER_LIMIT'
|
||||||
|
|
||||||
def icon(self):
|
def icon(self):
|
||||||
return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'buffer.png'))
|
return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'buffer.png'))
|
||||||
@ -83,14 +83,14 @@ class VariableDistanceBuffer(QgisAlgorithm):
|
|||||||
self.tr('End cap style'),
|
self.tr('End cap style'),
|
||||||
options=self.end_cap_styles, defaultValue=0))
|
options=self.end_cap_styles, defaultValue=0))
|
||||||
self.join_styles = [self.tr('Round'),
|
self.join_styles = [self.tr('Round'),
|
||||||
'Mitre',
|
'Miter',
|
||||||
'Bevel']
|
'Bevel']
|
||||||
self.addParameter(QgsProcessingParameterEnum(
|
self.addParameter(QgsProcessingParameterEnum(
|
||||||
self.JOIN_STYLE,
|
self.JOIN_STYLE,
|
||||||
self.tr('Join style'),
|
self.tr('Join style'),
|
||||||
options=self.join_styles, defaultValue=0))
|
options=self.join_styles, defaultValue=0))
|
||||||
self.addParameter(QgsProcessingParameterNumber(self.MITRE_LIMIT,
|
self.addParameter(QgsProcessingParameterNumber(self.MITER_LIMIT,
|
||||||
self.tr('Mitre limit'), minValue=0, defaultValue=2))
|
self.tr('Miter limit'), minValue=0, defaultValue=2))
|
||||||
|
|
||||||
self.addParameter(
|
self.addParameter(
|
||||||
QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Buffer'), QgsProcessing.TypeVectorPolygon))
|
QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Buffer'), QgsProcessing.TypeVectorPolygon))
|
||||||
@ -108,7 +108,7 @@ class VariableDistanceBuffer(QgisAlgorithm):
|
|||||||
segments = self.parameterAsInt(parameters, self.SEGMENTS, context)
|
segments = self.parameterAsInt(parameters, self.SEGMENTS, context)
|
||||||
end_cap_style = self.parameterAsEnum(parameters, self.END_CAP_STYLE, context) + 1
|
end_cap_style = self.parameterAsEnum(parameters, self.END_CAP_STYLE, context) + 1
|
||||||
join_style = self.parameterAsEnum(parameters, self.JOIN_STYLE, context) + 1
|
join_style = self.parameterAsEnum(parameters, self.JOIN_STYLE, context) + 1
|
||||||
miter_limit = self.parameterAsDouble(parameters, self.MITRE_LIMIT, context)
|
miter_limit = self.parameterAsDouble(parameters, self.MITER_LIMIT, context)
|
||||||
|
|
||||||
field = self.parameterAsString(parameters, self.FIELD, context)
|
field = self.parameterAsString(parameters, self.FIELD, context)
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ class ParameterMultipleInput(Parameter):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
if _minNumInputs < 1 and not self.flags() & QgsProcessingParameterDefinition.FlagOptional:
|
if _minNumInputs < 1 and not self.flags() & QgsProcessingParameterDefinition.FlagOptional:
|
||||||
# don't allow to set negative or null number of inputs if parameter isn't optional
|
# don't allow setting negative or null number of inputs if parameter isn't optional
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self.minNumInputs = int(_minNumInputs)
|
self.minNumInputs = int(_minNumInputs)
|
||||||
|
@ -83,6 +83,10 @@ class ParametersPanel(BASE, WIDGET):
|
|||||||
for wrapper in list(self.wrappers.values()):
|
for wrapper in list(self.wrappers.values()):
|
||||||
wrapper.refresh()
|
wrapper.refresh()
|
||||||
|
|
||||||
|
def formatParameterTooltip(self, parameter):
|
||||||
|
return '<p><b>{}</b></p><p>{}</p>'.format(parameter.description(),
|
||||||
|
self.tr('Python identifier: ‘{}’').format('<i>{}</i>'.format(parameter.name())))
|
||||||
|
|
||||||
def initWidgets(self):
|
def initWidgets(self):
|
||||||
# If there are advanced parameters — show corresponding groupbox
|
# If there are advanced parameters — show corresponding groupbox
|
||||||
for param in self.alg.parameterDefinitions():
|
for param in self.alg.parameterDefinitions():
|
||||||
@ -127,7 +131,7 @@ class ParametersPanel(BASE, WIDGET):
|
|||||||
widget = QWidget()
|
widget = QWidget()
|
||||||
widget.setLayout(layout)
|
widget.setLayout(layout)
|
||||||
|
|
||||||
widget.setToolTip(param.description())
|
widget.setToolTip(self.formatParameterTooltip(param))
|
||||||
|
|
||||||
if type(widget) is QCheckBox:
|
if type(widget) is QCheckBox:
|
||||||
# checkbox widget - so description is embedded in widget rather than a separate
|
# checkbox widget - so description is embedded in widget rather than a separate
|
||||||
@ -164,6 +168,8 @@ class ParametersPanel(BASE, WIDGET):
|
|||||||
check.setChecked(True)
|
check.setChecked(True)
|
||||||
self.layoutMain.insertWidget(self.layoutMain.count() - 1, check)
|
self.layoutMain.insertWidget(self.layoutMain.count() - 1, check)
|
||||||
self.checkBoxes[output.name()] = check
|
self.checkBoxes[output.name()] = check
|
||||||
|
|
||||||
|
widget.setToolTip(self.formatParameterTooltip(param))
|
||||||
self.outputWidgets[output.name()] = widget
|
self.outputWidgets[output.name()] = widget
|
||||||
|
|
||||||
for wrapper in list(self.wrappers.values()):
|
for wrapper in list(self.wrappers.values()):
|
||||||
|
@ -1357,7 +1357,6 @@ class WidgetWrapperFactory:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_wrapper_from_class(param, dialog, row=0, col=0):
|
def create_wrapper_from_class(param, dialog, row=0, col=0):
|
||||||
print("PARAM", param, param.name(), param.type())
|
|
||||||
wrapper = None
|
wrapper = None
|
||||||
if param.type() == 'boolean':
|
if param.type() == 'boolean':
|
||||||
wrapper = BooleanWidgetWrapper
|
wrapper = BooleanWidgetWrapper
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<GMLFeatureClassList>
|
<GMLFeatureClassList>
|
||||||
<GMLFeatureClass>
|
<GMLFeatureClass>
|
||||||
<Name>buffer_polys_mitre</Name>
|
<Name>buffer_polys_miter</Name>
|
||||||
<ElementPath>buffer_polys_mitre</ElementPath>
|
<ElementPath>buffer_polys_miter</ElementPath>
|
||||||
<GeometryType>3</GeometryType>
|
<GeometryType>3</GeometryType>
|
||||||
<SRSName>EPSG:4326</SRSName>
|
<SRSName>EPSG:4326</SRSName>
|
||||||
<DatasetSpecificInfo>
|
<DatasetSpecificInfo>
|
@ -12,47 +12,47 @@
|
|||||||
</gml:boundedBy>
|
</gml:boundedBy>
|
||||||
|
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:buffer_polys_mitre fid="polys.0">
|
<ogr:buffer_polys_miter fid="polys.0">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>-2,-2 -2,4 4,4 4,1 3,1 3,-2 -2,-2</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>-2,-2 -2,4 4,4 4,1 3,1 3,-2 -2,-2</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
<ogr:name>aaaaa</ogr:name>
|
<ogr:name>aaaaa</ogr:name>
|
||||||
<ogr:intval>33</ogr:intval>
|
<ogr:intval>33</ogr:intval>
|
||||||
<ogr:floatval>44.123456</ogr:floatval>
|
<ogr:floatval>44.123456</ogr:floatval>
|
||||||
</ogr:buffer_polys_mitre>
|
</ogr:buffer_polys_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:buffer_polys_mitre fid="polys.1">
|
<ogr:buffer_polys_miter fid="polys.1">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>5.0,6.414213562373096 7.93754927857421,3.451405886594554 7.757968851470933,3.017860383945075 2.242031148529061,3.017860383945087 2.062450721425788,3.451405886594566 5.0,6.414213562373096</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>5.0,6.414213562373096 7.93754927857421,3.451405886594554 7.757968851470933,3.017860383945075 2.242031148529061,3.017860383945087 2.062450721425788,3.451405886594566 5.0,6.414213562373096</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
<ogr:name>Aaaaa</ogr:name>
|
<ogr:name>Aaaaa</ogr:name>
|
||||||
<ogr:intval>-33</ogr:intval>
|
<ogr:intval>-33</ogr:intval>
|
||||||
<ogr:floatval>0</ogr:floatval>
|
<ogr:floatval>0</ogr:floatval>
|
||||||
</ogr:buffer_polys_mitre>
|
</ogr:buffer_polys_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:buffer_polys_mitre fid="polys.2">
|
<ogr:buffer_polys_miter fid="polys.2">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>1,4 1,7 4,7 4,4 1,4</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>1,4 1,7 4,7 4,4 1,4</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
<ogr:name>bbaaa</ogr:name>
|
<ogr:name>bbaaa</ogr:name>
|
||||||
<ogr:floatval>0.123</ogr:floatval>
|
<ogr:floatval>0.123</ogr:floatval>
|
||||||
</ogr:buffer_polys_mitre>
|
</ogr:buffer_polys_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:buffer_polys_mitre fid="polys.3">
|
<ogr:buffer_polys_miter fid="polys.3">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>5,2 11,2 11,-4 5,-4 5,2</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>5,2 11,2 11,-4 5,-4 5,2</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
<ogr:name>ASDF</ogr:name>
|
<ogr:name>ASDF</ogr:name>
|
||||||
<ogr:intval>0</ogr:intval>
|
<ogr:intval>0</ogr:intval>
|
||||||
</ogr:buffer_polys_mitre>
|
</ogr:buffer_polys_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:buffer_polys_mitre fid="polys.4">
|
<ogr:buffer_polys_miter fid="polys.4">
|
||||||
<ogr:intval>120</ogr:intval>
|
<ogr:intval>120</ogr:intval>
|
||||||
<ogr:floatval>-100291.43213</ogr:floatval>
|
<ogr:floatval>-100291.43213</ogr:floatval>
|
||||||
</ogr:buffer_polys_mitre>
|
</ogr:buffer_polys_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:buffer_polys_mitre fid="polys.5">
|
<ogr:buffer_polys_miter fid="polys.5">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>3.162277660168381,3.0 7.0,1.720759220056127 7.0,-4.618033988749896 1.0,-1.618033988749894 1,3 3.162277660168381,3.0</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>3.162277660168381,3.0 7.0,1.720759220056127 7.0,-4.618033988749896 1.0,-1.618033988749894 1,3 3.162277660168381,3.0</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
<ogr:name>elim</ogr:name>
|
<ogr:name>elim</ogr:name>
|
||||||
<ogr:intval>2</ogr:intval>
|
<ogr:intval>2</ogr:intval>
|
||||||
<ogr:floatval>3.33</ogr:floatval>
|
<ogr:floatval>3.33</ogr:floatval>
|
||||||
</ogr:buffer_polys_mitre>
|
</ogr:buffer_polys_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
</ogr:FeatureCollection>
|
</ogr:FeatureCollection>
|
@ -1,7 +1,7 @@
|
|||||||
<GMLFeatureClassList>
|
<GMLFeatureClassList>
|
||||||
<GMLFeatureClass>
|
<GMLFeatureClass>
|
||||||
<Name>line_offset_mitre</Name>
|
<Name>line_offset_miter</Name>
|
||||||
<ElementPath>line_offset_mitre</ElementPath>
|
<ElementPath>line_offset_miter</ElementPath>
|
||||||
<GeometryType>2</GeometryType>
|
<GeometryType>2</GeometryType>
|
||||||
<SRSName>EPSG:4326</SRSName>
|
<SRSName>EPSG:4326</SRSName>
|
||||||
<DatasetSpecificInfo>
|
<DatasetSpecificInfo>
|
@ -12,37 +12,37 @@
|
|||||||
</gml:boundedBy>
|
</gml:boundedBy>
|
||||||
|
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.0">
|
<ogr:line_offset_miter fid="lines.0">
|
||||||
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>6,3 8,3 8.0,3.414213562373094 10.292893218813452,5.707106781186548</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>6,3 8,3 8.0,3.414213562373094 10.292893218813452,5.707106781186548</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.1">
|
<ogr:line_offset_miter fid="lines.1">
|
||||||
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>-1,0 1,0</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>-1,0 1,0</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.2">
|
<ogr:line_offset_miter fid="lines.2">
|
||||||
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>1,0 1,3 2,3</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>1,0 1,3 2,3</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.3">
|
<ogr:line_offset_miter fid="lines.3">
|
||||||
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>3,2 5,2</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>3,2 5,2</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.4">
|
<ogr:line_offset_miter fid="lines.4">
|
||||||
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>7,-2 10,-2</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>7,-2 10,-2</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.5">
|
<ogr:line_offset_miter fid="lines.5">
|
||||||
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>5.292893218813452,-2.292893218813453 9.292893218813452,1.707106781186547</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:LineString srsName="EPSG:4326"><gml:coordinates>5.292893218813452,-2.292893218813453 9.292893218813452,1.707106781186547</gml:coordinates></gml:LineString></ogr:geometryProperty>
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:line_offset_mitre fid="lines.6">
|
<ogr:line_offset_miter fid="lines.6">
|
||||||
</ogr:line_offset_mitre>
|
</ogr:line_offset_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
</ogr:FeatureCollection>
|
</ogr:FeatureCollection>
|
@ -1,7 +1,7 @@
|
|||||||
<GMLFeatureClassList>
|
<GMLFeatureClassList>
|
||||||
<GMLFeatureClass>
|
<GMLFeatureClass>
|
||||||
<Name>single_sided_buffer_line_mitre</Name>
|
<Name>single_sided_buffer_line_miter</Name>
|
||||||
<ElementPath>single_sided_buffer_line_mitre</ElementPath>
|
<ElementPath>single_sided_buffer_line_miter</ElementPath>
|
||||||
<GeometryType>3</GeometryType>
|
<GeometryType>3</GeometryType>
|
||||||
<SRSName>EPSG:4326</SRSName>
|
<SRSName>EPSG:4326</SRSName>
|
||||||
<DatasetSpecificInfo>
|
<DatasetSpecificInfo>
|
@ -12,37 +12,37 @@
|
|||||||
</gml:boundedBy>
|
</gml:boundedBy>
|
||||||
|
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.0">
|
<ogr:single_sided_buffer_line_miter fid="lines.0">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>6,2 9,2 9,3 11,5 11.707106781186548,4.292893218813452 10.0,2.585786437626905 10,1 6,1 6,2</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>6,2 9,2 9,3 11,5 11.707106781186548,4.292893218813452 10.0,2.585786437626905 10,1 6,1 6,2</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.1">
|
<ogr:single_sided_buffer_line_miter fid="lines.1">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>-1,-1 1,-1 1,-2 -1,-2 -1,-1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>-1,-1 1,-1 1,-2 -1,-2 -1,-1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.2">
|
<ogr:single_sided_buffer_line_miter fid="lines.2">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>2,0 2,2 3,2 3,3 4,3 4,1 3,1 3,0 2,0</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>2,0 2,2 3,2 3,3 4,3 4,1 3,1 3,0 2,0</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.3">
|
<ogr:single_sided_buffer_line_miter fid="lines.3">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>3,1 5,1 5,0 3,0 3,1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>3,1 5,1 5,0 3,0 3,1</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.4">
|
<ogr:single_sided_buffer_line_miter fid="lines.4">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>7,-3 10,-3 10,-4 7,-4 7,-3</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>7,-3 10,-3 10,-4 7,-4 7,-3</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.5">
|
<ogr:single_sided_buffer_line_miter fid="lines.5">
|
||||||
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>6,-3 10,1 10.707106781186548,0.292893218813453 6.707106781186548,-3.707106781186547 6,-3</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
<ogr:geometryProperty><gml:Polygon srsName="EPSG:4326"><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>6,-3 10,1 10.707106781186548,0.292893218813453 6.707106781186548,-3.707106781186547 6,-3</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ogr:geometryProperty>
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
<gml:featureMember>
|
<gml:featureMember>
|
||||||
<ogr:single_sided_buffer_line_mitre fid="lines.6">
|
<ogr:single_sided_buffer_line_miter fid="lines.6">
|
||||||
</ogr:single_sided_buffer_line_mitre>
|
</ogr:single_sided_buffer_line_miter>
|
||||||
</gml:featureMember>
|
</gml:featureMember>
|
||||||
</ogr:FeatureCollection>
|
</ogr:FeatureCollection>
|
@ -645,7 +645,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -663,7 +663,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -674,18 +674,18 @@ tests:
|
|||||||
precision: 7
|
precision: 7
|
||||||
|
|
||||||
- algorithm: qgis:offsetline
|
- algorithm: qgis:offsetline
|
||||||
name: Offset line mitre
|
name: Offset line miter
|
||||||
params:
|
params:
|
||||||
DISTANCE: 1.0
|
DISTANCE: 1.0
|
||||||
INPUT:
|
INPUT:
|
||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '1'
|
JOIN_STYLE: '1'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 4
|
SEGMENTS: 4
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
name: expected/line_offset_mitre.gml
|
name: expected/line_offset_miter.gml
|
||||||
type: vector
|
type: vector
|
||||||
compare:
|
compare:
|
||||||
geometry:
|
geometry:
|
||||||
@ -699,7 +699,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '2'
|
JOIN_STYLE: '2'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -717,7 +717,7 @@ tests:
|
|||||||
name: multilines.gml
|
name: multilines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -737,7 +737,7 @@ tests:
|
|||||||
name: polys.gml
|
name: polys.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '2'
|
JOIN_STYLE: '2'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 5
|
SEGMENTS: 5
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -745,7 +745,7 @@ tests:
|
|||||||
type: vector
|
type: vector
|
||||||
|
|
||||||
- algorithm: qgis:fixeddistancebuffer
|
- algorithm: qgis:fixeddistancebuffer
|
||||||
name: Buffer polygons using mitre
|
name: Buffer polygons using miter
|
||||||
params:
|
params:
|
||||||
DISSOLVE: false
|
DISSOLVE: false
|
||||||
DISTANCE: 1.0
|
DISTANCE: 1.0
|
||||||
@ -754,11 +754,11 @@ tests:
|
|||||||
name: polys.gml
|
name: polys.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '1'
|
JOIN_STYLE: '1'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 5
|
SEGMENTS: 5
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
name: expected/buffer_polys_mitre.gml
|
name: expected/buffer_polys_miter.gml
|
||||||
type: vector
|
type: vector
|
||||||
|
|
||||||
- algorithm: qgis:fixeddistancebuffer
|
- algorithm: qgis:fixeddistancebuffer
|
||||||
@ -771,7 +771,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 5
|
SEGMENTS: 5
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -791,7 +791,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 5
|
SEGMENTS: 5
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -811,7 +811,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 5
|
SEGMENTS: 5
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
@ -926,7 +926,7 @@ tests:
|
|||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '0'
|
JOIN_STYLE: '0'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
SIDE: '0'
|
SIDE: '0'
|
||||||
results:
|
results:
|
||||||
@ -938,19 +938,19 @@ tests:
|
|||||||
precision: 7
|
precision: 7
|
||||||
|
|
||||||
- algorithm: qgis:singlesidedbuffer
|
- algorithm: qgis:singlesidedbuffer
|
||||||
name: Single sided buffer lines (Right, mitre)
|
name: Single sided buffer lines (Right, miter)
|
||||||
params:
|
params:
|
||||||
DISTANCE: 1.0
|
DISTANCE: 1.0
|
||||||
INPUT:
|
INPUT:
|
||||||
name: lines.gml
|
name: lines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '1'
|
JOIN_STYLE: '1'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
SIDE: '1'
|
SIDE: '1'
|
||||||
results:
|
results:
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
name: expected/single_sided_buffer_line_mitre.gml
|
name: expected/single_sided_buffer_line_miter.gml
|
||||||
type: vector
|
type: vector
|
||||||
compare:
|
compare:
|
||||||
geometry:
|
geometry:
|
||||||
@ -964,7 +964,7 @@ tests:
|
|||||||
name: multilines.gml
|
name: multilines.gml
|
||||||
type: vector
|
type: vector
|
||||||
JOIN_STYLE: '2'
|
JOIN_STYLE: '2'
|
||||||
MITRE_LIMIT: 2
|
MITER_LIMIT: 2
|
||||||
SEGMENTS: 8
|
SEGMENTS: 8
|
||||||
SIDE: '0'
|
SIDE: '0'
|
||||||
results:
|
results:
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
"arguments": [ {"arg":"geometry","description":"a (multi)linestring geometry"},
|
"arguments": [ {"arg":"geometry","description":"a (multi)linestring geometry"},
|
||||||
{"arg":"distance","description":"offset distance. Positive values will be buffered to the left of lines, negative values to the right"},
|
{"arg":"distance","description":"offset distance. Positive values will be buffered to the left of lines, negative values to the right"},
|
||||||
{"arg":"segments","optional":true,"default":"8","description":"number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother line with more nodes."},
|
{"arg":"segments","optional":true,"default":"8","description":"number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother line with more nodes."},
|
||||||
{"arg":"join","optional":true,"default":"1","description":"join style for corners, where 1 = round, 2 = mitre and 3 = bevel"},
|
{"arg":"join","optional":true,"default":"1","description":"join style for corners, where 1 = round, 2 = miter and 3 = bevel"},
|
||||||
{"arg":"mitre_limit","optional":true,"default":"2.0","description":"limit on the mitre ratio used for very sharp corners (when using mitre joins only)"}],
|
{"arg":"miter_limit","optional":true,"default":"2.0","description":"limit on the miter ratio used for very sharp corners (when using miter joins only)"}],
|
||||||
"examples": [ { "expression":"offset_curve($geometry, 10.5)", "returns":"line offset to the left by 10.5 units"},
|
"examples": [ { "expression":"offset_curve($geometry, 10.5)", "returns":"line offset to the left by 10.5 units"},
|
||||||
{ "expression":"offset_curve($geometry, -10.5)", "returns":"line offset to the right by 10.5 units"},
|
{ "expression":"offset_curve($geometry, -10.5)", "returns":"line offset to the right by 10.5 units"},
|
||||||
{ "expression":"offset_curve($geometry, 10.5, segments=16, join=1)", "returns":"line offset to the left by 10.5 units, using more segments to result in a smoother curve"},
|
{ "expression":"offset_curve($geometry, 10.5, segments=16, join=1)", "returns":"line offset to the left by 10.5 units, using more segments to result in a smoother curve"},
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
"arguments": [ {"arg":"geometry","description":"a (multi)linestring geometry"},
|
"arguments": [ {"arg":"geometry","description":"a (multi)linestring geometry"},
|
||||||
{"arg":"distance","description":"buffer distance. Positive values will be buffered to the left of lines, negative values to the right"},
|
{"arg":"distance","description":"buffer distance. Positive values will be buffered to the left of lines, negative values to the right"},
|
||||||
{"arg":"segments","optional":true,"default":"8","description":"number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes."},
|
{"arg":"segments","optional":true,"default":"8","description":"number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes."},
|
||||||
{"arg":"join","optional":true,"default":"1","description":"join style for corners, where 1 = round, 2 = mitre and 3 = bevel"},
|
{"arg":"join","optional":true,"default":"1","description":"join style for corners, where 1 = round, 2 = miter and 3 = bevel"},
|
||||||
{"arg":"mitre_limit","optional":true,"default":"2.0","description":"limit on the mitre ratio used for very sharp corners (when using mitre joins only)"}],
|
{"arg":"miter_limit","optional":true,"default":"2.0","description":"limit on the miter ratio used for very sharp corners (when using miter joins only)"}],
|
||||||
"examples": [ { "expression":"single_sided_buffer($geometry, 10.5)", "returns":"line buffered to the left by 10.5 units"},
|
"examples": [ { "expression":"single_sided_buffer($geometry, 10.5)", "returns":"line buffered to the left by 10.5 units"},
|
||||||
{ "expression":"single_sided_buffer($geometry, -10.5)", "returns":"line buffered to the right by 10.5 units"},
|
{ "expression":"single_sided_buffer($geometry, -10.5)", "returns":"line buffered to the right by 10.5 units"},
|
||||||
{ "expression":"single_sided_buffer($geometry, 10.5, segments=16, join=1)", "returns":"line buffered to the left by 10.5 units, using more segments to result in a smoother buffer"},
|
{ "expression":"single_sided_buffer($geometry, 10.5, segments=16, join=1)", "returns":"line buffered to the left by 10.5 units, using more segments to result in a smoother buffer"},
|
||||||
|
@ -22,6 +22,7 @@ src/plugins/grass/qtermwidget/
|
|||||||
*.*.sortinc
|
*.*.sortinc
|
||||||
*.*.png
|
*.*.png
|
||||||
*.*.prepare
|
*.*.prepare
|
||||||
|
*.sld
|
||||||
.agignore
|
.agignore
|
||||||
|
|
||||||
|
|
||||||
|
@ -4451,6 +4451,7 @@ missonary:missionary
|
|||||||
misterious:mysterious
|
misterious:mysterious
|
||||||
mistery:mystery
|
mistery:mystery
|
||||||
misteryous:mysterious
|
misteryous:mysterious
|
||||||
|
mitre:miter:*
|
||||||
mkae:make
|
mkae:make
|
||||||
mkaes:makes
|
mkaes:makes
|
||||||
mkaing:making
|
mkaing:making
|
||||||
@ -6246,6 +6247,7 @@ sertificates:certificates
|
|||||||
serveral:several
|
serveral:several
|
||||||
sesssion:session
|
sesssion:session
|
||||||
sesssions:sessions
|
sesssions:sessions
|
||||||
|
seting:setting:*
|
||||||
setted:set
|
setted:set
|
||||||
settelement:settlement
|
settelement:settlement
|
||||||
settlment:settlement
|
settlment:settlement
|
||||||
|
@ -1064,7 +1064,7 @@ QgsGeometry QgsGeometryAnalyzer::createOffsetGeometry( const QgsGeometry &geom,
|
|||||||
if ( geom.type() == QgsWkbTypes::LineGeometry )
|
if ( geom.type() == QgsWkbTypes::LineGeometry )
|
||||||
{
|
{
|
||||||
GEOSGeometry *inputGeomItGeos = inputGeomIt->exportToGeos();
|
GEOSGeometry *inputGeomItGeos = inputGeomIt->exportToGeos();
|
||||||
GEOSGeometry *offsetGeom = GEOSOffsetCurve_r( geosctxt, inputGeomItGeos, -offset, 8 /*quadSegments*/, 0 /*joinStyle*/, 5.0 /*mitreLimit*/ );
|
GEOSGeometry *offsetGeom = GEOSOffsetCurve_r( geosctxt, inputGeomItGeos, -offset, 8 /*quadSegments*/, 0 /*joinStyle*/, 5.0 /*miterLimit*/ );
|
||||||
GEOSGeom_destroy_r( geosctxt, inputGeomItGeos );
|
GEOSGeom_destroy_r( geosctxt, inputGeomItGeos );
|
||||||
if ( !offsetGeom || !GEOSisValid_r( geosctxt, offsetGeom ) )
|
if ( !offsetGeom || !GEOSisValid_r( geosctxt, offsetGeom ) )
|
||||||
{
|
{
|
||||||
|
@ -376,9 +376,9 @@ void QgsMapToolOffsetCurve::setOffsetForRubberBand( double offset )
|
|||||||
QgsSettings s;
|
QgsSettings s;
|
||||||
int joinStyle = s.value( QStringLiteral( "/qgis/digitizing/offset_join_style" ), 0 ).toInt();
|
int joinStyle = s.value( QStringLiteral( "/qgis/digitizing/offset_join_style" ), 0 ).toInt();
|
||||||
int quadSegments = s.value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt();
|
int quadSegments = s.value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt();
|
||||||
double mitreLimit = s.value( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), 5.0 ).toDouble();
|
double miterLimit = s.value( QStringLiteral( "/qgis/digitizing/offset_miter_limit" ), 5.0 ).toDouble();
|
||||||
|
|
||||||
GEOSGeometry *offsetGeom = GEOSOffsetCurve_r( QgsGeometry::getGEOSHandler(), geosGeom, offset, quadSegments, joinStyle, mitreLimit );
|
GEOSGeometry *offsetGeom = GEOSOffsetCurve_r( QgsGeometry::getGEOSHandler(), geosGeom, offset, quadSegments, joinStyle, miterLimit );
|
||||||
GEOSGeom_destroy_r( QgsGeometry::getGEOSHandler(), geosGeom );
|
GEOSGeom_destroy_r( QgsGeometry::getGEOSHandler(), geosGeom );
|
||||||
if ( !offsetGeom )
|
if ( !offsetGeom )
|
||||||
{
|
{
|
||||||
|
@ -930,7 +930,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
|
|||||||
mSnappingMainDialogComboBox->setCurrentIndex( mSnappingMainDialogComboBox->findData( mSettings->value( QStringLiteral( "/qgis/mainSnappingWidgetMode" ), "dialog" ).toString() ) );
|
mSnappingMainDialogComboBox->setCurrentIndex( mSnappingMainDialogComboBox->findData( mSettings->value( QStringLiteral( "/qgis/mainSnappingWidgetMode" ), "dialog" ).toString() ) );
|
||||||
|
|
||||||
mOffsetJoinStyleComboBox->addItem( tr( "Round" ), 0 );
|
mOffsetJoinStyleComboBox->addItem( tr( "Round" ), 0 );
|
||||||
mOffsetJoinStyleComboBox->addItem( tr( "Mitre" ), 1 );
|
mOffsetJoinStyleComboBox->addItem( tr( "Miter" ), 1 );
|
||||||
mOffsetJoinStyleComboBox->addItem( tr( "Bevel" ), 2 );
|
mOffsetJoinStyleComboBox->addItem( tr( "Bevel" ), 2 );
|
||||||
mOffsetJoinStyleComboBox->setCurrentIndex( mSettings->value( QStringLiteral( "/qgis/digitizing/offset_join_style" ), 0 ).toInt() );
|
mOffsetJoinStyleComboBox->setCurrentIndex( mSettings->value( QStringLiteral( "/qgis/digitizing/offset_join_style" ), 0 ).toInt() );
|
||||||
mOffsetQuadSegSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt() );
|
mOffsetQuadSegSpinBox->setValue( mSettings->value( QStringLiteral( "/qgis/digitizing/offset_quad_seg" ), 8 ).toInt() );
|
||||||
|
@ -3760,7 +3760,7 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
|
|||||||
QgsGeos geos( tempGeom );
|
QgsGeos geos( tempGeom );
|
||||||
if ( tempGeom != geom.get() )
|
if ( tempGeom != geom.get() )
|
||||||
delete tempGeom;
|
delete tempGeom;
|
||||||
tempGeom = geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 );
|
tempGeom = geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 ); //#spellok //#spellok
|
||||||
if ( !tempGeom )
|
if ( !tempGeom )
|
||||||
tempGeom = geom.get();
|
tempGeom = geom.get();
|
||||||
}
|
}
|
||||||
@ -3781,7 +3781,7 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
|
|||||||
QgsGeos geos( tempGeom );
|
QgsGeos geos( tempGeom );
|
||||||
if ( tempGeom != geom.get() )
|
if ( tempGeom != geom.get() )
|
||||||
delete tempGeom;
|
delete tempGeom;
|
||||||
tempGeom = geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 );
|
tempGeom = geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 ); //#spellok //#spellok
|
||||||
if ( !tempGeom )
|
if ( !tempGeom )
|
||||||
tempGeom = geom.get();
|
tempGeom = geom.get();
|
||||||
}
|
}
|
||||||
@ -3807,7 +3807,7 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
|
|||||||
QgsGeos geos( tempGeom );
|
QgsGeos geos( tempGeom );
|
||||||
if ( tempGeom != geom.get() )
|
if ( tempGeom != geom.get() )
|
||||||
delete tempGeom;
|
delete tempGeom;
|
||||||
tempGeom = geos.buffer( offset, 0, GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 );
|
tempGeom = geos.buffer( offset, 0, GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 ); //#spellok //#spellok
|
||||||
if ( !tempGeom )
|
if ( !tempGeom )
|
||||||
tempGeom = geom.get();
|
tempGeom = geom.get();
|
||||||
}
|
}
|
||||||
@ -3828,7 +3828,7 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
|
|||||||
QgsGeos geos( tempGeom );
|
QgsGeos geos( tempGeom );
|
||||||
if ( tempGeom != geom.get() )
|
if ( tempGeom != geom.get() )
|
||||||
delete tempGeom;
|
delete tempGeom;
|
||||||
tempGeom = geos.buffer( offset, 0, GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 );
|
tempGeom = geos.buffer( offset, 0, GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 ); //#spellok //#spellok
|
||||||
if ( !tempGeom )
|
if ( !tempGeom )
|
||||||
tempGeom = geom.get();
|
tempGeom = geom.get();
|
||||||
}
|
}
|
||||||
|
@ -2452,9 +2452,9 @@ static QVariant fcnOffsetCurve( const QVariantList &values, const QgsExpressionC
|
|||||||
QgsGeometry::JoinStyle join = static_cast< QgsGeometry::JoinStyle >( QgsExpressionUtils::getIntValue( values.at( 3 ), parent ) );
|
QgsGeometry::JoinStyle join = static_cast< QgsGeometry::JoinStyle >( QgsExpressionUtils::getIntValue( values.at( 3 ), parent ) );
|
||||||
if ( join < QgsGeometry::JoinStyleRound || join > QgsGeometry::JoinStyleBevel )
|
if ( join < QgsGeometry::JoinStyleRound || join > QgsGeometry::JoinStyleBevel )
|
||||||
return QVariant();
|
return QVariant();
|
||||||
double mitreLimit = QgsExpressionUtils::getDoubleValue( values.at( 3 ), parent );
|
double miterLimit = QgsExpressionUtils::getDoubleValue( values.at( 3 ), parent );
|
||||||
|
|
||||||
QgsGeometry geom = fGeom.offsetCurve( dist, segments, join, mitreLimit );
|
QgsGeometry geom = fGeom.offsetCurve( dist, segments, join, miterLimit );
|
||||||
QVariant result = !geom.isNull() ? QVariant::fromValue( geom ) : QVariant();
|
QVariant result = !geom.isNull() ? QVariant::fromValue( geom ) : QVariant();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -2467,9 +2467,9 @@ static QVariant fcnSingleSidedBuffer( const QVariantList &values, const QgsExpre
|
|||||||
QgsGeometry::JoinStyle join = static_cast< QgsGeometry::JoinStyle >( QgsExpressionUtils::getIntValue( values.at( 3 ), parent ) );
|
QgsGeometry::JoinStyle join = static_cast< QgsGeometry::JoinStyle >( QgsExpressionUtils::getIntValue( values.at( 3 ), parent ) );
|
||||||
if ( join < QgsGeometry::JoinStyleRound || join > QgsGeometry::JoinStyleBevel )
|
if ( join < QgsGeometry::JoinStyleRound || join > QgsGeometry::JoinStyleBevel )
|
||||||
return QVariant();
|
return QVariant();
|
||||||
double mitreLimit = QgsExpressionUtils::getDoubleValue( values.at( 3 ), parent );
|
double miterLimit = QgsExpressionUtils::getDoubleValue( values.at( 3 ), parent );
|
||||||
|
|
||||||
QgsGeometry geom = fGeom.singleSidedBuffer( dist, segments, QgsGeometry::SideLeft, join, mitreLimit );
|
QgsGeometry geom = fGeom.singleSidedBuffer( dist, segments, QgsGeometry::SideLeft, join, miterLimit );
|
||||||
QVariant result = !geom.isNull() ? QVariant::fromValue( geom ) : QVariant();
|
QVariant result = !geom.isNull() ? QVariant::fromValue( geom ) : QVariant();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -4068,13 +4068,13 @@ const QList<QgsExpressionFunction *> &QgsExpression::Functions()
|
|||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "distance" ) )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "distance" ) )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "segments" ), true, 8.0 )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "segments" ), true, 8.0 )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "join" ), true, QgsGeometry::JoinStyleRound )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "join" ), true, QgsGeometry::JoinStyleRound )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "mitre_limit" ), true, 2.0 ),
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "miter_limit" ), true, 2.0 ),
|
||||||
fcnOffsetCurve, QStringLiteral( "GeometryGroup" ) )
|
fcnOffsetCurve, QStringLiteral( "GeometryGroup" ) )
|
||||||
<< new QgsStaticExpressionFunction( QStringLiteral( "single_sided_buffer" ), QgsExpressionFunction::ParameterList() << QgsExpressionFunction::Parameter( QStringLiteral( "geometry" ) )
|
<< new QgsStaticExpressionFunction( QStringLiteral( "single_sided_buffer" ), QgsExpressionFunction::ParameterList() << QgsExpressionFunction::Parameter( QStringLiteral( "geometry" ) )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "distance" ) )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "distance" ) )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "segments" ), true, 8.0 )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "segments" ), true, 8.0 )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "join" ), true, QgsGeometry::JoinStyleRound )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "join" ), true, QgsGeometry::JoinStyleRound )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "mitre_limit" ), true, 2.0 ),
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "miter_limit" ), true, 2.0 ),
|
||||||
fcnSingleSidedBuffer, QStringLiteral( "GeometryGroup" ) )
|
fcnSingleSidedBuffer, QStringLiteral( "GeometryGroup" ) )
|
||||||
<< new QgsStaticExpressionFunction( QStringLiteral( "extend" ), QgsExpressionFunction::ParameterList() << QgsExpressionFunction::Parameter( QStringLiteral( "geometry" ) )
|
<< new QgsStaticExpressionFunction( QStringLiteral( "extend" ), QgsExpressionFunction::ParameterList() << QgsExpressionFunction::Parameter( QStringLiteral( "geometry" ) )
|
||||||
<< QgsExpressionFunction::Parameter( QStringLiteral( "start_distance" ) )
|
<< QgsExpressionFunction::Parameter( QStringLiteral( "start_distance" ) )
|
||||||
|
@ -1413,7 +1413,7 @@ QgsGeometry QgsGeometry::buffer( double distance, int segments ) const
|
|||||||
return QgsGeometry( geom );
|
return QgsGeometry( geom );
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsGeometry QgsGeometry::buffer( double distance, int segments, EndCapStyle endCapStyle, JoinStyle joinStyle, double mitreLimit ) const
|
QgsGeometry QgsGeometry::buffer( double distance, int segments, EndCapStyle endCapStyle, JoinStyle joinStyle, double miterLimit ) const
|
||||||
{
|
{
|
||||||
if ( !d->geometry )
|
if ( !d->geometry )
|
||||||
{
|
{
|
||||||
@ -1421,7 +1421,7 @@ QgsGeometry QgsGeometry::buffer( double distance, int segments, EndCapStyle endC
|
|||||||
}
|
}
|
||||||
|
|
||||||
QgsGeos g( d->geometry );
|
QgsGeos g( d->geometry );
|
||||||
QgsAbstractGeometry *geom = g.buffer( distance, segments, endCapStyle, joinStyle, mitreLimit );
|
QgsAbstractGeometry *geom = g.buffer( distance, segments, endCapStyle, joinStyle, miterLimit );
|
||||||
if ( !geom )
|
if ( !geom )
|
||||||
{
|
{
|
||||||
return QgsGeometry();
|
return QgsGeometry();
|
||||||
@ -1429,7 +1429,7 @@ QgsGeometry QgsGeometry::buffer( double distance, int segments, EndCapStyle endC
|
|||||||
return QgsGeometry( geom );
|
return QgsGeometry( geom );
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsGeometry QgsGeometry::offsetCurve( double distance, int segments, JoinStyle joinStyle, double mitreLimit ) const
|
QgsGeometry QgsGeometry::offsetCurve( double distance, int segments, JoinStyle joinStyle, double miterLimit ) const
|
||||||
{
|
{
|
||||||
if ( !d->geometry || type() != QgsWkbTypes::LineGeometry )
|
if ( !d->geometry || type() != QgsWkbTypes::LineGeometry )
|
||||||
{
|
{
|
||||||
@ -1442,7 +1442,7 @@ QgsGeometry QgsGeometry::offsetCurve( double distance, int segments, JoinStyle j
|
|||||||
QList<QgsGeometry> results;
|
QList<QgsGeometry> results;
|
||||||
Q_FOREACH ( const QgsGeometry &part, parts )
|
Q_FOREACH ( const QgsGeometry &part, parts )
|
||||||
{
|
{
|
||||||
QgsGeometry result = part.offsetCurve( distance, segments, joinStyle, mitreLimit );
|
QgsGeometry result = part.offsetCurve( distance, segments, joinStyle, miterLimit );
|
||||||
if ( result )
|
if ( result )
|
||||||
results << result;
|
results << result;
|
||||||
}
|
}
|
||||||
@ -1459,7 +1459,7 @@ QgsGeometry QgsGeometry::offsetCurve( double distance, int segments, JoinStyle j
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
QgsGeos geos( d->geometry );
|
QgsGeos geos( d->geometry );
|
||||||
QgsAbstractGeometry *offsetGeom = geos.offsetCurve( distance, segments, joinStyle, mitreLimit );
|
QgsAbstractGeometry *offsetGeom = geos.offsetCurve( distance, segments, joinStyle, miterLimit );
|
||||||
if ( !offsetGeom )
|
if ( !offsetGeom )
|
||||||
{
|
{
|
||||||
return QgsGeometry();
|
return QgsGeometry();
|
||||||
@ -1468,7 +1468,7 @@ QgsGeometry QgsGeometry::offsetCurve( double distance, int segments, JoinStyle j
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsGeometry QgsGeometry::singleSidedBuffer( double distance, int segments, BufferSide side, JoinStyle joinStyle, double mitreLimit ) const
|
QgsGeometry QgsGeometry::singleSidedBuffer( double distance, int segments, BufferSide side, JoinStyle joinStyle, double miterLimit ) const
|
||||||
{
|
{
|
||||||
if ( !d->geometry || type() != QgsWkbTypes::LineGeometry )
|
if ( !d->geometry || type() != QgsWkbTypes::LineGeometry )
|
||||||
{
|
{
|
||||||
@ -1481,7 +1481,7 @@ QgsGeometry QgsGeometry::singleSidedBuffer( double distance, int segments, Buffe
|
|||||||
QList<QgsGeometry> results;
|
QList<QgsGeometry> results;
|
||||||
Q_FOREACH ( const QgsGeometry &part, parts )
|
Q_FOREACH ( const QgsGeometry &part, parts )
|
||||||
{
|
{
|
||||||
QgsGeometry result = part.singleSidedBuffer( distance, segments, side, joinStyle, mitreLimit );
|
QgsGeometry result = part.singleSidedBuffer( distance, segments, side, joinStyle, miterLimit );
|
||||||
if ( result )
|
if ( result )
|
||||||
results << result;
|
results << result;
|
||||||
}
|
}
|
||||||
@ -1499,7 +1499,7 @@ QgsGeometry QgsGeometry::singleSidedBuffer( double distance, int segments, Buffe
|
|||||||
{
|
{
|
||||||
QgsGeos geos( d->geometry );
|
QgsGeos geos( d->geometry );
|
||||||
QgsAbstractGeometry *bufferGeom = geos.singleSidedBuffer( distance, segments, side,
|
QgsAbstractGeometry *bufferGeom = geos.singleSidedBuffer( distance, segments, side,
|
||||||
joinStyle, mitreLimit );
|
joinStyle, miterLimit );
|
||||||
if ( !bufferGeom )
|
if ( !bufferGeom )
|
||||||
{
|
{
|
||||||
return QgsGeometry();
|
return QgsGeometry();
|
||||||
|
@ -589,7 +589,7 @@ class CORE_EXPORT QgsGeometry
|
|||||||
enum JoinStyle
|
enum JoinStyle
|
||||||
{
|
{
|
||||||
JoinStyleRound = 1, //!< Use rounded joins
|
JoinStyleRound = 1, //!< Use rounded joins
|
||||||
JoinStyleMitre, //!< Use mitred joins
|
JoinStyleMiter, //!< Use mitered joins
|
||||||
JoinStyleBevel, //!< Use beveled joins
|
JoinStyleBevel, //!< Use beveled joins
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -602,19 +602,19 @@ class CORE_EXPORT QgsGeometry
|
|||||||
* \param segments for round joins, number of segments to approximate quarter-circle
|
* \param segments for round joins, number of segments to approximate quarter-circle
|
||||||
* \param endCapStyle end cap style
|
* \param endCapStyle end cap style
|
||||||
* \param joinStyle join style for corners in geometry
|
* \param joinStyle join style for corners in geometry
|
||||||
* \param mitreLimit limit on the mitre ratio used for very sharp corners (JoinStyleMitre only)
|
* \param miterLimit limit on the miter ratio used for very sharp corners (JoinStyleMiter only)
|
||||||
* \since QGIS 2.4
|
* \since QGIS 2.4
|
||||||
*/
|
*/
|
||||||
QgsGeometry buffer( double distance, int segments, EndCapStyle endCapStyle, JoinStyle joinStyle, double mitreLimit ) const;
|
QgsGeometry buffer( double distance, int segments, EndCapStyle endCapStyle, JoinStyle joinStyle, double miterLimit ) const;
|
||||||
|
|
||||||
/** Returns an offset line at a given distance and side from an input line.
|
/** Returns an offset line at a given distance and side from an input line.
|
||||||
* \param distance buffer distance
|
* \param distance buffer distance
|
||||||
* \param segments for round joins, number of segments to approximate quarter-circle
|
* \param segments for round joins, number of segments to approximate quarter-circle
|
||||||
* \param joinStyle join style for corners in geometry
|
* \param joinStyle join style for corners in geometry
|
||||||
* \param mitreLimit limit on the mitre ratio used for very sharp corners (JoinStyleMitre only)
|
* \param miterLimit limit on the miter ratio used for very sharp corners (JoinStyleMiter only)
|
||||||
* \since QGIS 2.4
|
* \since QGIS 2.4
|
||||||
*/
|
*/
|
||||||
QgsGeometry offsetCurve( double distance, int segments, JoinStyle joinStyle, double mitreLimit ) const;
|
QgsGeometry offsetCurve( double distance, int segments, JoinStyle joinStyle, double miterLimit ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a single sided buffer for a (multi)line geometry. The buffer is only
|
* Returns a single sided buffer for a (multi)line geometry. The buffer is only
|
||||||
@ -623,14 +623,14 @@ class CORE_EXPORT QgsGeometry
|
|||||||
* \param segments for round joins, number of segments to approximate quarter-circle
|
* \param segments for round joins, number of segments to approximate quarter-circle
|
||||||
* \param side side of geometry to buffer
|
* \param side side of geometry to buffer
|
||||||
* \param joinStyle join style for corners
|
* \param joinStyle join style for corners
|
||||||
* \param mitreLimit limit on the mitre ratio used for very sharp corners
|
* \param miterLimit limit on the miter ratio used for very sharp corners
|
||||||
* \returns buffered geometry, or an empty geometry if buffer could not be
|
* \returns buffered geometry, or an empty geometry if buffer could not be
|
||||||
* calculated
|
* calculated
|
||||||
* \since QGIS 3.0
|
* \since QGIS 3.0
|
||||||
*/
|
*/
|
||||||
QgsGeometry singleSidedBuffer( double distance, int segments, BufferSide side,
|
QgsGeometry singleSidedBuffer( double distance, int segments, BufferSide side,
|
||||||
JoinStyle joinStyle = JoinStyleRound,
|
JoinStyle joinStyle = JoinStyleRound,
|
||||||
double mitreLimit = 2.0 ) const;
|
double miterLimit = 2.0 ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extends a (multi)line geometry by extrapolating out the start or end of the line
|
* Extends a (multi)line geometry by extrapolating out the start or end of the line
|
||||||
|
@ -42,7 +42,7 @@ class CORE_EXPORT QgsGeometryEngine
|
|||||||
virtual QgsAbstractGeometry *combine( const QList< QgsAbstractGeometry * > &, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *combine( const QList< QgsAbstractGeometry * > &, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
virtual QgsAbstractGeometry *symDifference( const QgsAbstractGeometry &geom, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *symDifference( const QgsAbstractGeometry &geom, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
virtual QgsAbstractGeometry *buffer( double distance, int segments, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *buffer( double distance, int segments, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
virtual QgsAbstractGeometry *buffer( double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *buffer( double distance, int segments, int endCapStyle, int joinStyle, double miterLimit, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
virtual QgsAbstractGeometry *simplify( double tolerance, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *simplify( double tolerance, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
virtual QgsAbstractGeometry *interpolate( double distance, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *interpolate( double distance, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
virtual QgsAbstractGeometry *envelope( QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *envelope( QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
@ -101,7 +101,7 @@ class CORE_EXPORT QgsGeometryEngine
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual QgsAbstractGeometry *offsetCurve( double distance, int segments, int joinStyle, double mitreLimit, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
virtual QgsAbstractGeometry *offsetCurve( double distance, int segments, int joinStyle, double miterLimit, QString *errorMsg = nullptr ) const = 0 SIP_FACTORY;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const QgsAbstractGeometry *mGeometry = nullptr;
|
const QgsAbstractGeometry *mGeometry = nullptr;
|
||||||
|
@ -1452,7 +1452,7 @@ QgsAbstractGeometry *QgsGeos::buffer( double distance, int segments, QString *er
|
|||||||
return fromGeos( geos.get() );
|
return fromGeos( geos.get() );
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsAbstractGeometry *QgsGeos::buffer( double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit, QString *errorMsg ) const
|
QgsAbstractGeometry *QgsGeos::buffer( double distance, int segments, int endCapStyle, int joinStyle, double miterLimit, QString *errorMsg ) const
|
||||||
{
|
{
|
||||||
if ( !mGeos )
|
if ( !mGeos )
|
||||||
{
|
{
|
||||||
@ -1462,7 +1462,7 @@ QgsAbstractGeometry *QgsGeos::buffer( double distance, int segments, int endCapS
|
|||||||
GEOSGeomScopedPtr geos;
|
GEOSGeomScopedPtr geos;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
geos.reset( GEOSBufferWithStyle_r( geosinit.ctxt, mGeos, distance, segments, endCapStyle, joinStyle, mitreLimit ) );
|
geos.reset( GEOSBufferWithStyle_r( geosinit.ctxt, mGeos, distance, segments, endCapStyle, joinStyle, miterLimit ) );
|
||||||
}
|
}
|
||||||
CATCH_GEOS_WITH_ERRMSG( nullptr );
|
CATCH_GEOS_WITH_ERRMSG( nullptr );
|
||||||
return fromGeos( geos.get() );
|
return fromGeos( geos.get() );
|
||||||
@ -1851,7 +1851,7 @@ GEOSGeometry *QgsGeos::createGeosPolygon( const QgsAbstractGeometry *poly, doubl
|
|||||||
return geosPolygon;
|
return geosPolygon;
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsAbstractGeometry *QgsGeos::offsetCurve( double distance, int segments, int joinStyle, double mitreLimit, QString *errorMsg ) const
|
QgsAbstractGeometry *QgsGeos::offsetCurve( double distance, int segments, int joinStyle, double miterLimit, QString *errorMsg ) const
|
||||||
{
|
{
|
||||||
if ( !mGeos )
|
if ( !mGeos )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -1859,7 +1859,7 @@ QgsAbstractGeometry *QgsGeos::offsetCurve( double distance, int segments, int jo
|
|||||||
GEOSGeometry *offset = nullptr;
|
GEOSGeometry *offset = nullptr;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
offset = GEOSOffsetCurve_r( geosinit.ctxt, mGeos, distance, segments, joinStyle, mitreLimit );
|
offset = GEOSOffsetCurve_r( geosinit.ctxt, mGeos, distance, segments, joinStyle, miterLimit );
|
||||||
}
|
}
|
||||||
CATCH_GEOS_WITH_ERRMSG( nullptr )
|
CATCH_GEOS_WITH_ERRMSG( nullptr )
|
||||||
QgsAbstractGeometry *offsetGeom = fromGeos( offset );
|
QgsAbstractGeometry *offsetGeom = fromGeos( offset );
|
||||||
@ -1867,7 +1867,7 @@ QgsAbstractGeometry *QgsGeos::offsetCurve( double distance, int segments, int jo
|
|||||||
return offsetGeom;
|
return offsetGeom;
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsAbstractGeometry *QgsGeos::singleSidedBuffer( double distance, int segments, int side, int joinStyle, double mitreLimit, QString *errorMsg ) const
|
QgsAbstractGeometry *QgsGeos::singleSidedBuffer( double distance, int segments, int side, int joinStyle, double miterLimit, QString *errorMsg ) const
|
||||||
{
|
{
|
||||||
if ( !mGeos )
|
if ( !mGeos )
|
||||||
{
|
{
|
||||||
@ -1881,7 +1881,7 @@ QgsAbstractGeometry *QgsGeos::singleSidedBuffer( double distance, int segments,
|
|||||||
GEOSBufferParams_setSingleSided_r( geosinit.ctxt, bp, 1 );
|
GEOSBufferParams_setSingleSided_r( geosinit.ctxt, bp, 1 );
|
||||||
GEOSBufferParams_setQuadrantSegments_r( geosinit.ctxt, bp, segments );
|
GEOSBufferParams_setQuadrantSegments_r( geosinit.ctxt, bp, segments );
|
||||||
GEOSBufferParams_setJoinStyle_r( geosinit.ctxt, bp, joinStyle );
|
GEOSBufferParams_setJoinStyle_r( geosinit.ctxt, bp, joinStyle );
|
||||||
GEOSBufferParams_setMitreLimit_r( geosinit.ctxt, bp, mitreLimit );
|
GEOSBufferParams_setMitreLimit_r( geosinit.ctxt, bp, miterLimit ); //#spellok
|
||||||
|
|
||||||
if ( side == 1 )
|
if ( side == 1 )
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ class CORE_EXPORT QgsGeos: public QgsGeometryEngine
|
|||||||
QgsAbstractGeometry *combine( const QList< QgsAbstractGeometry *> &, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *combine( const QList< QgsAbstractGeometry *> &, QString *errorMsg = nullptr ) const override;
|
||||||
QgsAbstractGeometry *symDifference( const QgsAbstractGeometry &geom, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *symDifference( const QgsAbstractGeometry &geom, QString *errorMsg = nullptr ) const override;
|
||||||
QgsAbstractGeometry *buffer( double distance, int segments, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *buffer( double distance, int segments, QString *errorMsg = nullptr ) const override;
|
||||||
QgsAbstractGeometry *buffer( double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *buffer( double distance, int segments, int endCapStyle, int joinStyle, double miterLimit, QString *errorMsg = nullptr ) const override;
|
||||||
QgsAbstractGeometry *simplify( double tolerance, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *simplify( double tolerance, QString *errorMsg = nullptr ) const override;
|
||||||
QgsAbstractGeometry *interpolate( double distance, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *interpolate( double distance, QString *errorMsg = nullptr ) const override;
|
||||||
QgsAbstractGeometry *envelope( QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *envelope( QString *errorMsg = nullptr ) const override;
|
||||||
@ -112,7 +112,7 @@ class CORE_EXPORT QgsGeos: public QgsGeometryEngine
|
|||||||
QgsPointSequence &topologyTestPoints,
|
QgsPointSequence &topologyTestPoints,
|
||||||
QString *errorMsg = nullptr ) const override;
|
QString *errorMsg = nullptr ) const override;
|
||||||
|
|
||||||
QgsAbstractGeometry *offsetCurve( double distance, int segments, int joinStyle, double mitreLimit, QString *errorMsg = nullptr ) const override;
|
QgsAbstractGeometry *offsetCurve( double distance, int segments, int joinStyle, double miterLimit, QString *errorMsg = nullptr ) const override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a single sided buffer for a geometry. The buffer is only
|
* Returns a single sided buffer for a geometry. The buffer is only
|
||||||
@ -120,15 +120,15 @@ class CORE_EXPORT QgsGeos: public QgsGeometryEngine
|
|||||||
* \param distance buffer distance
|
* \param distance buffer distance
|
||||||
* \param segments for round joins, number of segments to approximate quarter-circle
|
* \param segments for round joins, number of segments to approximate quarter-circle
|
||||||
* \param side side of geometry to buffer (0 = left, 1 = right)
|
* \param side side of geometry to buffer (0 = left, 1 = right)
|
||||||
* \param joinStyle join style for corners ( Round (1) / Mitre (2) / Bevel (3) )
|
* \param joinStyle join style for corners ( Round (1) / Miter (2) / Bevel (3) )
|
||||||
* \param mitreLimit limit on the mitre ratio used for very sharp corners
|
* \param miterLimit limit on the miter ratio used for very sharp corners
|
||||||
* \param errorMsg error messages emitted, if any
|
* \param errorMsg error messages emitted, if any
|
||||||
* \returns buffered geometry, or an nullptr if buffer could not be
|
* \returns buffered geometry, or an nullptr if buffer could not be
|
||||||
* calculated
|
* calculated
|
||||||
* \since QGIS 3.0
|
* \since QGIS 3.0
|
||||||
*/
|
*/
|
||||||
QgsAbstractGeometry *singleSidedBuffer( double distance, int segments, int side,
|
QgsAbstractGeometry *singleSidedBuffer( double distance, int segments, int side,
|
||||||
int joinStyle, double mitreLimit,
|
int joinStyle, double miterLimit,
|
||||||
QString *errorMsg = nullptr ) const;
|
QString *errorMsg = nullptr ) const;
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ void QgsBufferAlgorithm::initAlgorithm( const QVariantMap & )
|
|||||||
|
|
||||||
addParameter( new QgsProcessingParameterEnum( QStringLiteral( "END_CAP_STYLE" ), QObject::tr( "End cap style" ), QStringList() << QObject::tr( "Round" ) << QObject::tr( "Flat" ) << QObject::tr( "Square" ), false ) );
|
addParameter( new QgsProcessingParameterEnum( QStringLiteral( "END_CAP_STYLE" ), QObject::tr( "End cap style" ), QStringList() << QObject::tr( "Round" ) << QObject::tr( "Flat" ) << QObject::tr( "Square" ), false ) );
|
||||||
addParameter( new QgsProcessingParameterEnum( QStringLiteral( "JOIN_STYLE" ), QObject::tr( "Join style" ), QStringList() << QObject::tr( "Round" ) << QObject::tr( "Miter" ) << QObject::tr( "Bevel" ), false ) );
|
addParameter( new QgsProcessingParameterEnum( QStringLiteral( "JOIN_STYLE" ), QObject::tr( "Join style" ), QStringList() << QObject::tr( "Round" ) << QObject::tr( "Miter" ) << QObject::tr( "Bevel" ), false ) );
|
||||||
addParameter( new QgsProcessingParameterNumber( QStringLiteral( "MITRE_LIMIT" ), QObject::tr( "Miter limit" ), QgsProcessingParameterNumber::Double, 2, false, 1 ) );
|
addParameter( new QgsProcessingParameterNumber( QStringLiteral( "MITER_LIMIT" ), QObject::tr( "Miter limit" ), QgsProcessingParameterNumber::Double, 2, false, 1 ) );
|
||||||
|
|
||||||
addParameter( new QgsProcessingParameterBoolean( QStringLiteral( "DISSOLVE" ), QObject::tr( "Dissolve result" ), false ) );
|
addParameter( new QgsProcessingParameterBoolean( QStringLiteral( "DISSOLVE" ), QObject::tr( "Dissolve result" ), false ) );
|
||||||
addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Buffered" ), QgsProcessing::TypeVectorPolygon ) );
|
addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Buffered" ), QgsProcessing::TypeVectorPolygon ) );
|
||||||
@ -123,8 +123,8 @@ QString QgsBufferAlgorithm::shortHelpString() const
|
|||||||
return QObject::tr( "This algorithm computes a buffer area for all the features in an input layer, using a fixed or dynamic distance.\n\n"
|
return QObject::tr( "This algorithm computes a buffer area for all the features in an input layer, using a fixed or dynamic distance.\n\n"
|
||||||
"The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded offsets.\n\n"
|
"The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded offsets.\n\n"
|
||||||
"The end cap style parameter controls how line endings are handled in the buffer.\n\n"
|
"The end cap style parameter controls how line endings are handled in the buffer.\n\n"
|
||||||
"The join style parameter specifies whether round, mitre or beveled joins should be used when offsetting corners in a line.\n\n"
|
"The join style parameter specifies whether round, miter or beveled joins should be used when offsetting corners in a line.\n\n"
|
||||||
"The mitre limit parameter is only applicable for mitre join styles, and controls the maximum distance from the offset curve to use when creating a mitred join." );
|
"The miter limit parameter is only applicable for miter join styles, and controls the maximum distance from the offset curve to use when creating a mitered join." );
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsBufferAlgorithm *QgsBufferAlgorithm::createInstance() const
|
QgsBufferAlgorithm *QgsBufferAlgorithm::createInstance() const
|
||||||
@ -148,7 +148,7 @@ QVariantMap QgsBufferAlgorithm::processAlgorithm( const QVariantMap ¶meters,
|
|||||||
int segments = parameterAsInt( parameters, QStringLiteral( "SEGMENTS" ), context );
|
int segments = parameterAsInt( parameters, QStringLiteral( "SEGMENTS" ), context );
|
||||||
QgsGeometry::EndCapStyle endCapStyle = static_cast< QgsGeometry::EndCapStyle >( 1 + parameterAsInt( parameters, QStringLiteral( "END_CAP_STYLE" ), context ) );
|
QgsGeometry::EndCapStyle endCapStyle = static_cast< QgsGeometry::EndCapStyle >( 1 + parameterAsInt( parameters, QStringLiteral( "END_CAP_STYLE" ), context ) );
|
||||||
QgsGeometry::JoinStyle joinStyle = static_cast< QgsGeometry::JoinStyle>( 1 + parameterAsInt( parameters, QStringLiteral( "JOIN_STYLE" ), context ) );
|
QgsGeometry::JoinStyle joinStyle = static_cast< QgsGeometry::JoinStyle>( 1 + parameterAsInt( parameters, QStringLiteral( "JOIN_STYLE" ), context ) );
|
||||||
double miterLimit = parameterAsDouble( parameters, QStringLiteral( "MITRE_LIMIT" ), context );
|
double miterLimit = parameterAsDouble( parameters, QStringLiteral( "MITER_LIMIT" ), context );
|
||||||
double bufferDistance = parameterAsDouble( parameters, QStringLiteral( "DISTANCE" ), context );
|
double bufferDistance = parameterAsDouble( parameters, QStringLiteral( "DISTANCE" ), context );
|
||||||
bool dynamicBuffer = QgsProcessingParameters::isDynamic( parameters, QStringLiteral( "DISTANCE" ) );
|
bool dynamicBuffer = QgsProcessingParameters::isDynamic( parameters, QStringLiteral( "DISTANCE" ) );
|
||||||
const QgsProcessingParameterDefinition *distanceParamDef = parameterDefinition( QStringLiteral( "DISTANCE" ) );
|
const QgsProcessingParameterDefinition *distanceParamDef = parameterDefinition( QStringLiteral( "DISTANCE" ) );
|
||||||
|
@ -66,7 +66,7 @@ class CORE_EXPORT QgsSingleSymbolRenderer : public QgsFeatureRenderer
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Configures appearance of legend when renderer is configured to use data-defined size for marker symbols.
|
* Configures appearance of legend when renderer is configured to use data-defined size for marker symbols.
|
||||||
* This allow to configure for which values (symbol sizes) should be shown in the legend, whether to display
|
* This allows configuring which values (symbol sizes) should be shown in the legend, whether to display
|
||||||
* different symbol sizes collapsed in one legend node or separated across multiple legend nodes etc.
|
* different symbol sizes collapsed in one legend node or separated across multiple legend nodes etc.
|
||||||
*
|
*
|
||||||
* When renderer does not use data-defined size or does not use marker symbols, these settings will be ignored.
|
* When renderer does not use data-defined size or does not use marker symbols, these settings will be ignored.
|
||||||
|
@ -198,7 +198,7 @@ QString QgsSymbolLayerUtils::encodeSldLineJoinStyle( Qt::PenJoinStyle style )
|
|||||||
case Qt::BevelJoin:
|
case Qt::BevelJoin:
|
||||||
return QStringLiteral( "bevel" );
|
return QStringLiteral( "bevel" );
|
||||||
case Qt::MiterJoin:
|
case Qt::MiterJoin:
|
||||||
return QStringLiteral( "mitre" );
|
return QStringLiteral( "mitre" ); //#spellok
|
||||||
case Qt::RoundJoin:
|
case Qt::RoundJoin:
|
||||||
return QStringLiteral( "round" );
|
return QStringLiteral( "round" );
|
||||||
default:
|
default:
|
||||||
@ -209,7 +209,7 @@ QString QgsSymbolLayerUtils::encodeSldLineJoinStyle( Qt::PenJoinStyle style )
|
|||||||
Qt::PenJoinStyle QgsSymbolLayerUtils::decodeSldLineJoinStyle( const QString &str )
|
Qt::PenJoinStyle QgsSymbolLayerUtils::decodeSldLineJoinStyle( const QString &str )
|
||||||
{
|
{
|
||||||
if ( str == QLatin1String( "bevel" ) ) return Qt::BevelJoin;
|
if ( str == QLatin1String( "bevel" ) ) return Qt::BevelJoin;
|
||||||
if ( str == QLatin1String( "mitre" ) ) return Qt::MiterJoin;
|
if ( str == QLatin1String( "mitre" ) ) return Qt::MiterJoin; //#spellok
|
||||||
if ( str == QLatin1String( "round" ) ) return Qt::RoundJoin;
|
if ( str == QLatin1String( "round" ) ) return Qt::RoundJoin;
|
||||||
return Qt::BevelJoin;
|
return Qt::BevelJoin;
|
||||||
}
|
}
|
||||||
@ -764,14 +764,14 @@ QList<QPolygonF> offsetLine( QPolygonF polyline, double dist, QgsWkbTypes::Geome
|
|||||||
QgsGeometry tempGeometry = geometryType == QgsWkbTypes::PolygonGeometry ? QgsGeometry::fromPolygon( QgsPolygon() << tempPolyline ) : QgsGeometry::fromPolyline( tempPolyline );
|
QgsGeometry tempGeometry = geometryType == QgsWkbTypes::PolygonGeometry ? QgsGeometry::fromPolygon( QgsPolygon() << tempPolyline ) : QgsGeometry::fromPolyline( tempPolyline );
|
||||||
if ( !tempGeometry.isNull() )
|
if ( !tempGeometry.isNull() )
|
||||||
{
|
{
|
||||||
int quadSegments = 0; // we want mitre joins, not round joins
|
int quadSegments = 0; // we want miter joins, not round joins
|
||||||
double mitreLimit = 2.0; // the default value in GEOS (5.0) allows for fairly sharp endings
|
double miterLimit = 2.0; // the default value in GEOS (5.0) allows for fairly sharp endings
|
||||||
QgsGeometry offsetGeom;
|
QgsGeometry offsetGeom;
|
||||||
if ( geometryType == QgsWkbTypes::PolygonGeometry )
|
if ( geometryType == QgsWkbTypes::PolygonGeometry )
|
||||||
offsetGeom = tempGeometry.buffer( -dist, quadSegments, QgsGeometry::CapFlat,
|
offsetGeom = tempGeometry.buffer( -dist, quadSegments, QgsGeometry::CapFlat,
|
||||||
QgsGeometry::JoinStyleMitre, mitreLimit );
|
QgsGeometry::JoinStyleMiter, miterLimit );
|
||||||
else
|
else
|
||||||
offsetGeom = tempGeometry.offsetCurve( dist, quadSegments, QgsGeometry::JoinStyleMitre, mitreLimit );
|
offsetGeom = tempGeometry.offsetCurve( dist, quadSegments, QgsGeometry::JoinStyleMiter, miterLimit );
|
||||||
|
|
||||||
if ( !offsetGeom.isNull() )
|
if ( !offsetGeom.isNull() )
|
||||||
{
|
{
|
||||||
|
@ -67,7 +67,7 @@ void QgsGeometryGapCheck::collectErrors( QList<QgsGeometryCheckError *> &errors,
|
|||||||
|
|
||||||
// Buffer envelope
|
// Buffer envelope
|
||||||
geomEngine = QgsGeometryCheckerUtils::createGeomEngine( envelope, QgsGeometryCheckPrecision::tolerance() );
|
geomEngine = QgsGeometryCheckerUtils::createGeomEngine( envelope, QgsGeometryCheckPrecision::tolerance() );
|
||||||
QgsAbstractGeometry *bufEnvelope = geomEngine->buffer( 2, 0, GEOSBUF_CAP_SQUARE, GEOSBUF_JOIN_MITRE, 4. );
|
QgsAbstractGeometry *bufEnvelope = geomEngine->buffer( 2, 0, GEOSBUF_CAP_SQUARE, GEOSBUF_JOIN_MITRE, 4. ); //#spellok //#spellok
|
||||||
delete geomEngine;
|
delete geomEngine;
|
||||||
delete envelope;
|
delete envelope;
|
||||||
envelope = bufEnvelope;
|
envelope = bufEnvelope;
|
||||||
|
@ -213,7 +213,7 @@ class QgsGrassNewMapset : public QWizard, private Ui::QgsGrassNewMapsetBase
|
|||||||
//! Was the region page modified by user
|
//! Was the region page modified by user
|
||||||
bool mRegionModified;
|
bool mRegionModified;
|
||||||
|
|
||||||
//! Check region seting
|
//! Check region setting
|
||||||
void checkRegion();
|
void checkRegion();
|
||||||
|
|
||||||
//! Region map
|
//! Region map
|
||||||
|
@ -436,7 +436,7 @@ ACCEPTABLE_MISSING_DOCS = {
|
|||||||
"QgsExpression::NodeList": ["dump() const ", "count()", "list()"],
|
"QgsExpression::NodeList": ["dump() const ", "count()", "list()"],
|
||||||
"QgsComposerAttributeTableV2": ["QgsComposerAttributeTableV2(QgsComposition *composition, bool createUndoCommands)"],
|
"QgsComposerAttributeTableV2": ["QgsComposerAttributeTableV2(QgsComposition *composition, bool createUndoCommands)"],
|
||||||
"QgsMapLayerLegend": ["QgsMapLayerLegend(QObject *parent=0)"],
|
"QgsMapLayerLegend": ["QgsMapLayerLegend(QObject *parent=0)"],
|
||||||
"QgsGeometryEngine": ["buffer(double distance, int segments, QString *errorMsg=nullptr) const =0", "contains(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "prepareGeometry()=0", "length(QString *errorMsg=nullptr) const =0", "splitGeometry(const QgsLineString &splitLine, QList< QgsAbstractGeometry * > &newGeometries, bool topological, QgsPointSequence &topologyTestPoints, QString *errorMsg=nullptr) const ", "within(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "geometryChanged()=0", "overlaps(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "interpolate(double distance, QString *errorMsg=nullptr) const =0", "intersection(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "centroid(QgsPoint &pt, QString *errorMsg=nullptr) const =0", "simplify(double tolerance, QString *errorMsg=nullptr) const =0", "QgsGeometryEngine(const QgsAbstractGeometry *geometry)", "isValid(QString *errorMsg=nullptr) const =0", "area(QString *errorMsg=nullptr) const =0", "combine(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "combine(const QList< QgsAbstractGeometry * > &, QString *errorMsg=nullptr) const =0", "isEmpty(QString *errorMsg) const =0", "envelope(QString *errorMsg=nullptr) const =0", "touches(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "distance(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "disjoint(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "convexHull(QString *errorMsg=nullptr) const =0", "offsetCurve(double distance, int segments, int joinStyle, double mitreLimit, QString *errorMsg=nullptr) const =0", "buffer(double distance, int segments, int endCapStyle, int joinStyle, double mitreLimit, QString *errorMsg=nullptr) const =0", "pointOnSurface(QgsPoint &pt, QString *errorMsg=nullptr) const =0", "intersects(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "difference(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "symDifference(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "isEqual(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "crosses(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0"],
|
"QgsGeometryEngine": ["buffer(double distance, int segments, QString *errorMsg=nullptr) const =0", "contains(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "prepareGeometry()=0", "length(QString *errorMsg=nullptr) const =0", "splitGeometry(const QgsLineString &splitLine, QList< QgsAbstractGeometry * > &newGeometries, bool topological, QgsPointSequence &topologyTestPoints, QString *errorMsg=nullptr) const ", "within(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "geometryChanged()=0", "overlaps(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "interpolate(double distance, QString *errorMsg=nullptr) const =0", "intersection(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "centroid(QgsPoint &pt, QString *errorMsg=nullptr) const =0", "simplify(double tolerance, QString *errorMsg=nullptr) const =0", "QgsGeometryEngine(const QgsAbstractGeometry *geometry)", "isValid(QString *errorMsg=nullptr) const =0", "area(QString *errorMsg=nullptr) const =0", "combine(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "combine(const QList< QgsAbstractGeometry * > &, QString *errorMsg=nullptr) const =0", "isEmpty(QString *errorMsg) const =0", "envelope(QString *errorMsg=nullptr) const =0", "touches(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "distance(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "disjoint(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "convexHull(QString *errorMsg=nullptr) const =0", "offsetCurve(double distance, int segments, int joinStyle, double miterLimit, QString *errorMsg=nullptr) const =0", "buffer(double distance, int segments, int endCapStyle, int joinStyle, double miterLimit, QString *errorMsg=nullptr) const =0", "pointOnSurface(QgsPoint &pt, QString *errorMsg=nullptr) const =0", "intersects(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "difference(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "symDifference(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "isEqual(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0", "crosses(const QgsAbstractGeometry &geom, QString *errorMsg=nullptr) const =0"],
|
||||||
"QgsMapToolAdvancedDigitizing": ["cadDockWidget() const "],
|
"QgsMapToolAdvancedDigitizing": ["cadDockWidget() const "],
|
||||||
"QgsCptCityBrowserModel": ["findItem(QgsCptCityDataItem *item, QgsCptCityDataItem *parent=nullptr) const ", "QgsCptCityBrowserModel(QObject *parent=nullptr, QgsCptCityArchive *archive=QgsCptCityArchive::defaultArchive(), ViewType Type=Authors)", "endInsertItems()", "reload()", "beginInsertItems(QgsCptCityDataItem *parent, int first, int last)", "addRootItems()", "connectItem(QgsCptCityDataItem *item)", "refresh(const QString &path)", "beginRemoveItems(QgsCptCityDataItem *parent, int first, int last)", "endRemoveItems()", "refresh(const QModelIndex &index=QModelIndex())", "ViewType", "removeRootItems()"],
|
"QgsCptCityBrowserModel": ["findItem(QgsCptCityDataItem *item, QgsCptCityDataItem *parent=nullptr) const ", "QgsCptCityBrowserModel(QObject *parent=nullptr, QgsCptCityArchive *archive=QgsCptCityArchive::defaultArchive(), ViewType Type=Authors)", "endInsertItems()", "reload()", "beginInsertItems(QgsCptCityDataItem *parent, int first, int last)", "addRootItems()", "connectItem(QgsCptCityDataItem *item)", "refresh(const QString &path)", "beginRemoveItems(QgsCptCityDataItem *parent, int first, int last)", "endRemoveItems()", "refresh(const QModelIndex &index=QModelIndex())", "ViewType", "removeRootItems()"],
|
||||||
"QgsComposerPicture": ["QgsComposerPicture(QgsComposition *composition)"],
|
"QgsComposerPicture": ["QgsComposerPicture(QgsComposition *composition)"],
|
||||||
|
@ -705,13 +705,13 @@ class TestQgsExpression: public QObject
|
|||||||
QTest::newRow( "offset_curve null" ) << "offset_curve(NULL, 5)" << false << QVariant();
|
QTest::newRow( "offset_curve null" ) << "offset_curve(NULL, 5)" << false << QVariant();
|
||||||
QTest::newRow( "offset_curve point" ) << "offset_curve(geom_from_wkt('POINT(1 2)'),5)" << false << QVariant();
|
QTest::newRow( "offset_curve point" ) << "offset_curve(geom_from_wkt('POINT(1 2)'),5)" << false << QVariant();
|
||||||
QTest::newRow( "offset_curve line" ) << "geom_to_wkt(offset_curve(geom_from_wkt('LineString(0 0, 10 0)'),1,segments:=4))" << false << QVariant( "LineString (0 1, 10 1)" );
|
QTest::newRow( "offset_curve line" ) << "geom_to_wkt(offset_curve(geom_from_wkt('LineString(0 0, 10 0)'),1,segments:=4))" << false << QVariant( "LineString (0 1, 10 1)" );
|
||||||
QTest::newRow( "offset_curve line mitre" ) << "geom_to_wkt(offset_curve(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=-1,join:=2,mitre_limit:=1))" << false << QVariant( "LineString (10 -1, 0 -1)" );
|
QTest::newRow( "offset_curve line miter" ) << "geom_to_wkt(offset_curve(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=-1,join:=2,miter_limit:=1))" << false << QVariant( "LineString (10 -1, 0 -1)" );
|
||||||
QTest::newRow( "offset_curve line bevel" ) << "geom_to_wkt(offset_curve(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),distance:=1,join:=3))" << false << QVariant( "LineString (0 1, 9 1, 9 10)" );
|
QTest::newRow( "offset_curve line bevel" ) << "geom_to_wkt(offset_curve(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),distance:=1,join:=3))" << false << QVariant( "LineString (0 1, 9 1, 9 10)" );
|
||||||
QTest::newRow( "single_sided_buffer not geom" ) << "single_sided_buffer('g', 5)" << true << QVariant();
|
QTest::newRow( "single_sided_buffer not geom" ) << "single_sided_buffer('g', 5)" << true << QVariant();
|
||||||
QTest::newRow( "single_sided_buffer null" ) << "single_sided_buffer(NULL, 5)" << false << QVariant();
|
QTest::newRow( "single_sided_buffer null" ) << "single_sided_buffer(NULL, 5)" << false << QVariant();
|
||||||
QTest::newRow( "single_sided_buffer point" ) << "single_sided_buffer(geom_from_wkt('POINT(1 2)'),5)" << false << QVariant();
|
QTest::newRow( "single_sided_buffer point" ) << "single_sided_buffer(geom_from_wkt('POINT(1 2)'),5)" << false << QVariant();
|
||||||
QTest::newRow( "single_sided_buffer line" ) << "geom_to_wkt(single_sided_buffer(geom_from_wkt('LineString(0 0, 10 0)'),1,segments:=4))" << false << QVariant( "Polygon ((10 0, 0 0, 0 1, 10 1, 10 0))" );
|
QTest::newRow( "single_sided_buffer line" ) << "geom_to_wkt(single_sided_buffer(geom_from_wkt('LineString(0 0, 10 0)'),1,segments:=4))" << false << QVariant( "Polygon ((10 0, 0 0, 0 1, 10 1, 10 0))" );
|
||||||
QTest::newRow( "single_sided_buffer line mitre" ) << "geom_to_wkt(single_sided_buffer(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=-1,join:=2,mitre_limit:=1))" << false << QVariant( "Polygon ((0 0, 10 0, 10 -1, 0 -1, 0 0))" );
|
QTest::newRow( "single_sided_buffer line miter" ) << "geom_to_wkt(single_sided_buffer(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=-1,join:=2,miter_limit:=1))" << false << QVariant( "Polygon ((0 0, 10 0, 10 -1, 0 -1, 0 0))" );
|
||||||
QTest::newRow( "single_sided_buffer line bevel" ) << "geom_to_wkt(single_sided_buffer(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),distance:=1,join:=3))" << false << QVariant( "Polygon ((10 10, 10 0, 0 0, 0 1, 9 1, 9 10, 10 10))" );
|
QTest::newRow( "single_sided_buffer line bevel" ) << "geom_to_wkt(single_sided_buffer(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),distance:=1,join:=3))" << false << QVariant( "Polygon ((10 10, 10 0, 0 0, 0 1, 9 1, 9 10, 10 10))" );
|
||||||
QTest::newRow( "extend not geom" ) << "extend('g', 1, 2)" << true << QVariant();
|
QTest::newRow( "extend not geom" ) << "extend('g', 1, 2)" << true << QVariant();
|
||||||
QTest::newRow( "extend null" ) << "extend(NULL, 1, 2)" << false << QVariant();
|
QTest::newRow( "extend null" ) << "extend(NULL, 1, 2)" << false << QVariant();
|
||||||
|
@ -3381,7 +3381,7 @@ class TestQgsGeometry(unittest.TestCase):
|
|||||||
|
|
||||||
wkt = "LineString( 0 0, 10 0, 10 10)"
|
wkt = "LineString( 0 0, 10 0, 10 10)"
|
||||||
geom = QgsGeometry.fromWkt(wkt)
|
geom = QgsGeometry.fromWkt(wkt)
|
||||||
out = geom.singleSidedBuffer(1, 8, QgsGeometry.SideRight, QgsGeometry.JoinStyleMitre)
|
out = geom.singleSidedBuffer(1, 8, QgsGeometry.SideRight, QgsGeometry.JoinStyleMiter)
|
||||||
result = out.exportToWkt()
|
result = out.exportToWkt()
|
||||||
expected_wkt = "Polygon ((0 0, 10 0, 10 10, 11 10, 11 -1, 0 -1, 0 0))"
|
expected_wkt = "Polygon ((0 0, 10 0, 10 10, 11 10, 11 -1, 0 -1, 0 0))"
|
||||||
self.assertTrue(compareWkt(result, expected_wkt, 0.00001), "Merge lines: mismatch Expected:\n{}\nGot:\n{}\n".format(expected_wkt, result))
|
self.assertTrue(compareWkt(result, expected_wkt, 0.00001), "Merge lines: mismatch Expected:\n{}\nGot:\n{}\n".format(expected_wkt, result))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user