Add tests for line placement of labels
@ -31,6 +31,7 @@ from utilities import (
|
||||
from test_qgspallabeling_base import TestQgsPalLabeling, runSuite
|
||||
from test_qgspallabeling_tests import (
|
||||
TestPointBase,
|
||||
TestLineBase,
|
||||
suiteTests
|
||||
)
|
||||
|
||||
@ -114,6 +115,20 @@ class TestCanvasPoint(TestCanvasBasePoint, TestPointBase):
|
||||
super(TestCanvasPoint, self).setUp()
|
||||
self.configTest('pal_canvas', 'sp')
|
||||
|
||||
class TestCanvasBaseLine(TestCanvasBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
TestCanvasBase.setUpClass()
|
||||
cls.layer = TestQgsPalLabeling.loadFeatureLayer('line')
|
||||
|
||||
class TestCanvasLine(TestCanvasBaseLine, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestCanvasLine, self).setUp()
|
||||
self.configTest('pal_canvas_line', 'sp')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# NOTE: unless PAL_SUITE env var is set all test class methods will be run
|
||||
|
@ -37,6 +37,7 @@ from utilities import (
|
||||
from test_qgspallabeling_base import TestQgsPalLabeling, runSuite
|
||||
from test_qgspallabeling_tests import (
|
||||
TestPointBase,
|
||||
TestLineBase,
|
||||
suiteTests
|
||||
)
|
||||
|
||||
@ -375,6 +376,74 @@ class TestComposerPdfVsComposerPoint(TestComposerPointBase, TestPointBase):
|
||||
self._Mismatch = 50
|
||||
self._ColorTol = 18
|
||||
|
||||
class TestComposerLineBase(TestComposerBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
TestComposerBase.setUpClass()
|
||||
cls.layer = TestQgsPalLabeling.loadFeatureLayer('line')
|
||||
|
||||
|
||||
class TestComposerImageLine(TestComposerLineBase, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestComposerImageLine, self).setUp()
|
||||
self._TestKind = OutputKind.Img
|
||||
self.configTest('pal_composer_line', 'sp_img')
|
||||
|
||||
|
||||
class TestComposerImageVsCanvasLine(TestComposerLineBase, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestComposerImageVsCanvasLine, self).setUp()
|
||||
self._TestKind = OutputKind.Img
|
||||
self.configTest('pal_canvas_line', 'sp')
|
||||
|
||||
|
||||
class TestComposerSvgLine(TestComposerLineBase, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestComposerSvgLine, self).setUp()
|
||||
self._TestKind = OutputKind.Svg
|
||||
self.configTest('pal_composer_line', 'sp_svg')
|
||||
|
||||
|
||||
class TestComposerSvgVsComposerLine(TestComposerLineBase, TestLineBase):
|
||||
"""
|
||||
Compare only to composer image, which is already compared to canvas line
|
||||
"""
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestComposerSvgVsComposerLine, self).setUp()
|
||||
self._TestKind = OutputKind.Svg
|
||||
self.configTest('pal_composer_line', 'sp_img')
|
||||
self._ColorTol = 4
|
||||
|
||||
|
||||
class TestComposerPdfLine(TestComposerLineBase, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestComposerPdfLine, self).setUp()
|
||||
self._TestKind = OutputKind.Pdf
|
||||
self.configTest('pal_composer_line', 'sp_pdf')
|
||||
|
||||
|
||||
class TestComposerPdfVsComposerLine(TestComposerLineBase, TestLineBase):
|
||||
"""
|
||||
Compare only to composer image, which is already compared to canvas line
|
||||
"""
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestComposerPdfVsComposerLine, self).setUp()
|
||||
self._TestKind = OutputKind.Pdf
|
||||
self.configTest('pal_composer_line', 'sp_img')
|
||||
self._Mismatch = 50
|
||||
self._ColorTol = 18
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# NOTE: unless PAL_SUITE env var is set all test class methods will be run
|
||||
|
@ -34,6 +34,7 @@ from qgis_local_server import getLocalServer
|
||||
from test_qgspallabeling_base import TestQgsPalLabeling, runSuite
|
||||
from test_qgspallabeling_tests import (
|
||||
TestPointBase,
|
||||
TestLineBase,
|
||||
suiteTests
|
||||
)
|
||||
|
||||
@ -212,6 +213,25 @@ class TestServerVsCanvasPoint(TestServerBasePoint, TestPointBase):
|
||||
super(TestServerVsCanvasPoint, self).setUp()
|
||||
self.configTest('pal_canvas', 'sp')
|
||||
|
||||
class TestServerBaseLine(TestServerBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
TestServerBase.setUpClass()
|
||||
cls.layer = TestQgsPalLabeling.loadFeatureLayer('line')
|
||||
|
||||
class TestServerLine(TestServerBaseLine, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
"""Run before each test."""
|
||||
super(TestServerLine, self).setUp()
|
||||
self.configTest('pal_server_line', 'sp')
|
||||
|
||||
class TestServerVsCanvasLine(TestServerBaseLine, TestLineBase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestServerVsCanvasLine, self).setUp()
|
||||
self.configTest('pal_canvas_line', 'sp')
|
||||
|
||||
if __name__ == '__main__':
|
||||
# NOTE: unless PAL_SUITE env var is set all test class methods will be run
|
||||
|
@ -170,19 +170,96 @@ class TestPointBase(object):
|
||||
self._Pal.setShowingPartialsLabels(False)
|
||||
self._Pal.saveEngineSettings()
|
||||
self.checkTest()
|
||||
|
||||
|
||||
def test_buffer(self):
|
||||
# Label with buffer
|
||||
self.lyr.bufferDraw = True
|
||||
self.lyr.bufferSize = 2
|
||||
self.checkTest()
|
||||
self.checkTest()
|
||||
|
||||
def test_shadow(self):
|
||||
# Label with shadow
|
||||
self.lyr.shadowDraw = True
|
||||
self.lyr.shadowOffsetDist = 2
|
||||
self.lyr.shadowTransparency = 0
|
||||
self.checkTest()
|
||||
self.checkTest()
|
||||
|
||||
# noinspection PyPep8Naming
|
||||
class TestLineBase(object):
|
||||
|
||||
def __init__(self):
|
||||
"""Dummy assignments, intended to be overridden in subclasses"""
|
||||
self.lyr = QgsPalLayerSettings()
|
||||
""":type: QgsPalLayerSettings"""
|
||||
# noinspection PyArgumentList
|
||||
self._TestFont = QFont() # will become a standard test font
|
||||
self._Pal = None
|
||||
""":type: QgsPalLabeling"""
|
||||
self._Canvas = None
|
||||
""":type: QgsMapCanvas"""
|
||||
# custom mismatches per group/test (should not mask any needed anomaly)
|
||||
# e.g. self._Mismatches['TestClassName'] = 300
|
||||
# check base output class's checkTest() or sublcasses for any defaults
|
||||
self._Mismatches = dict()
|
||||
# custom color tolerances per group/test: 1 - 20 (0 default, 20 max)
|
||||
# (should not mask any needed anomaly)
|
||||
# e.g. self._ColorTols['TestClassName'] = 10
|
||||
# check base output class's checkTest() or sublcasses for any defaults
|
||||
self._ColorTols = dict()
|
||||
|
||||
# noinspection PyMethodMayBeStatic
|
||||
def checkTest(self, **kwargs):
|
||||
"""Intended to be overridden in subclasses"""
|
||||
pass
|
||||
|
||||
def test_line_placement_above_line_orientation(self):
|
||||
# Line placement, above, follow line orientation
|
||||
self.lyr.placement = QgsPalLayerSettings.Line
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.AboveLine
|
||||
self.checkTest()
|
||||
|
||||
def test_line_placement_online(self):
|
||||
# Line placement, on line
|
||||
self.lyr.placement = QgsPalLayerSettings.Line
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.OnLine
|
||||
self.checkTest()
|
||||
|
||||
def test_line_placement_below_line_orientation(self):
|
||||
# Line placement, below, follow line orientation
|
||||
self.lyr.placement = QgsPalLayerSettings.Line
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.BelowLine
|
||||
self.checkTest()
|
||||
|
||||
def test_line_placement_above_map_orientation(self):
|
||||
# Line placement, above, follow map orientation
|
||||
self.lyr.placement = QgsPalLayerSettings.Line
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.AboveLine | QgsPalLayerSettings.MapOrientation
|
||||
self.checkTest()
|
||||
|
||||
def test_line_placement_below_map_orientation(self):
|
||||
# Line placement, below, follow map orientation
|
||||
self.lyr.placement = QgsPalLayerSettings.Line
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.BelowLine | QgsPalLayerSettings.MapOrientation
|
||||
self.checkTest()
|
||||
|
||||
def test_curved_placement_online(self):
|
||||
# Curved placement, on line
|
||||
self.lyr.placement = QgsPalLayerSettings.Curved
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.OnLine
|
||||
self.checkTest()
|
||||
|
||||
def test_curved_placement_above(self):
|
||||
# Curved placement, on line
|
||||
self.lyr.placement = QgsPalLayerSettings.Curved
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.AboveLine | QgsPalLayerSettings.MapOrientation
|
||||
self.checkTest()
|
||||
|
||||
def test_curved_placement_below(self):
|
||||
# Curved placement, on line
|
||||
self.lyr.placement = QgsPalLayerSettings.Curved
|
||||
self.lyr.placementFlags = QgsPalLayerSettings.BelowLine | QgsPalLayerSettings.MapOrientation
|
||||
self.checkTest()
|
||||
|
||||
|
||||
# noinspection PyPep8Naming
|
||||
def suiteTests():
|
||||
|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 12 KiB |
330
tests/testdata/labeling/line.qml
vendored
Normal file
@ -0,0 +1,330 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis version="2.9.0-Master" minimumScale="-4.65661e-10" maximumScale="1e+08" simplifyDrawingHints="1" minLabelScale="0" maxLabelScale="1e+08" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1" scaleBasedLabelVisibilityFlag="0">
|
||||
<edittypes>
|
||||
<edittype widgetv2type="TextEdit" name="pkuid">
|
||||
<widgetv2config IsMultiline="0" fieldEditable="1" UseHtml="0" labelOnTop="0"/>
|
||||
</edittype>
|
||||
<edittype widgetv2type="TextEdit" name="text">
|
||||
<widgetv2config IsMultiline="0" fieldEditable="1" UseHtml="0" labelOnTop="0"/>
|
||||
</edittype>
|
||||
</edittypes>
|
||||
<renderer-v2 symbollevels="0" type="singleSymbol">
|
||||
<symbols>
|
||||
<symbol alpha="1" clip_to_extent="1" type="line" name="0">
|
||||
<layer pass="0" class="SimpleLine" locked="0">
|
||||
<prop k="capstyle" v="square"/>
|
||||
<prop k="customdash" v="5;2"/>
|
||||
<prop k="customdash_map_unit_scale" v="0,0"/>
|
||||
<prop k="customdash_unit" v="MM"/>
|
||||
<prop k="draw_inside_polygon" v="0"/>
|
||||
<prop k="joinstyle" v="bevel"/>
|
||||
<prop k="line_color" v="227,26,28,255"/>
|
||||
<prop k="line_style" v="solid"/>
|
||||
<prop k="line_width" v="0.5"/>
|
||||
<prop k="line_width_unit" v="MM"/>
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="0,0"/>
|
||||
<effect enabled="0" type="effectStack">
|
||||
<effect type="dropShadow">
|
||||
<prop k="blend_mode" v="13"/>
|
||||
<prop k="blur_level" v="10"/>
|
||||
<prop k="color" v="0,0,0,255"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="offset_angle" v="135"/>
|
||||
<prop k="offset_distance" v="2"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="offset_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0"/>
|
||||
</effect>
|
||||
<effect type="outerGlow">
|
||||
<prop k="blend_mode" v="0"/>
|
||||
<prop k="blur_level" v="3"/>
|
||||
<prop k="color_type" v="0"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="single_color" v="255,255,255,255"/>
|
||||
<prop k="spread" v="2"/>
|
||||
<prop k="spread_unit" v="MM"/>
|
||||
<prop k="spread_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0.5"/>
|
||||
</effect>
|
||||
<effect type="drawSource">
|
||||
<prop k="blend_mode" v="0"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="1"/>
|
||||
<prop k="transparency" v="0"/>
|
||||
</effect>
|
||||
<effect type="innerShadow">
|
||||
<prop k="blend_mode" v="13"/>
|
||||
<prop k="blur_level" v="10"/>
|
||||
<prop k="color" v="0,0,0,255"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="offset_angle" v="135"/>
|
||||
<prop k="offset_distance" v="2"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="offset_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0"/>
|
||||
</effect>
|
||||
<effect type="innerGlow">
|
||||
<prop k="blend_mode" v="0"/>
|
||||
<prop k="blur_level" v="3"/>
|
||||
<prop k="color_type" v="0"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="single_color" v="255,255,255,255"/>
|
||||
<prop k="spread" v="2"/>
|
||||
<prop k="spread_unit" v="MM"/>
|
||||
<prop k="spread_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0.5"/>
|
||||
</effect>
|
||||
</effect>
|
||||
</layer>
|
||||
</symbol>
|
||||
</symbols>
|
||||
<rotation/>
|
||||
<sizescale scalemethod="diameter"/>
|
||||
<effect enabled="0" type="effectStack">
|
||||
<effect type="dropShadow">
|
||||
<prop k="blend_mode" v="13"/>
|
||||
<prop k="blur_level" v="10"/>
|
||||
<prop k="color" v="0,0,0,255"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="offset_angle" v="135"/>
|
||||
<prop k="offset_distance" v="2"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="offset_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0"/>
|
||||
</effect>
|
||||
<effect type="outerGlow">
|
||||
<prop k="blend_mode" v="0"/>
|
||||
<prop k="blur_level" v="3"/>
|
||||
<prop k="color_type" v="0"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="single_color" v="255,255,255,255"/>
|
||||
<prop k="spread" v="2"/>
|
||||
<prop k="spread_unit" v="MM"/>
|
||||
<prop k="spread_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0.5"/>
|
||||
</effect>
|
||||
<effect type="drawSource">
|
||||
<prop k="blend_mode" v="0"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="1"/>
|
||||
<prop k="transparency" v="0"/>
|
||||
</effect>
|
||||
<effect type="innerShadow">
|
||||
<prop k="blend_mode" v="13"/>
|
||||
<prop k="blur_level" v="10"/>
|
||||
<prop k="color" v="0,0,0,255"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="offset_angle" v="135"/>
|
||||
<prop k="offset_distance" v="2"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="offset_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0"/>
|
||||
</effect>
|
||||
<effect type="innerGlow">
|
||||
<prop k="blend_mode" v="0"/>
|
||||
<prop k="blur_level" v="3"/>
|
||||
<prop k="color_type" v="0"/>
|
||||
<prop k="draw_mode" v="2"/>
|
||||
<prop k="enabled" v="0"/>
|
||||
<prop k="single_color" v="255,255,255,255"/>
|
||||
<prop k="spread" v="2"/>
|
||||
<prop k="spread_unit" v="MM"/>
|
||||
<prop k="spread_unit_scale" v="0,0"/>
|
||||
<prop k="transparency" v="0.5"/>
|
||||
</effect>
|
||||
</effect>
|
||||
</renderer-v2>
|
||||
<customproperties>
|
||||
<property key="labeling" value="pal"/>
|
||||
<property key="labeling/addDirectionSymbol" value="false"/>
|
||||
<property key="labeling/angleOffset" value="0"/>
|
||||
<property key="labeling/blendMode" value="0"/>
|
||||
<property key="labeling/bufferBlendMode" value="0"/>
|
||||
<property key="labeling/bufferColorA" value="255"/>
|
||||
<property key="labeling/bufferColorB" value="255"/>
|
||||
<property key="labeling/bufferColorG" value="255"/>
|
||||
<property key="labeling/bufferColorR" value="255"/>
|
||||
<property key="labeling/bufferDraw" value="false"/>
|
||||
<property key="labeling/bufferJoinStyle" value="64"/>
|
||||
<property key="labeling/bufferNoFill" value="false"/>
|
||||
<property key="labeling/bufferSize" value="1"/>
|
||||
<property key="labeling/bufferSizeInMapUnits" value="false"/>
|
||||
<property key="labeling/bufferSizeMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/bufferSizeMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/bufferTransp" value="0"/>
|
||||
<property key="labeling/centroidInside" value="false"/>
|
||||
<property key="labeling/centroidWhole" value="false"/>
|
||||
<property key="labeling/decimals" value="3"/>
|
||||
<property key="labeling/displayAll" value="false"/>
|
||||
<property key="labeling/dist" value="0"/>
|
||||
<property key="labeling/distInMapUnits" value="false"/>
|
||||
<property key="labeling/distMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/distMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/enabled" value="false"/>
|
||||
<property key="labeling/fieldName" value=""/>
|
||||
<property key="labeling/fontBold" value="false"/>
|
||||
<property key="labeling/fontCapitals" value="0"/>
|
||||
<property key="labeling/fontFamily" value="Ubuntu"/>
|
||||
<property key="labeling/fontItalic" value="false"/>
|
||||
<property key="labeling/fontLetterSpacing" value="0"/>
|
||||
<property key="labeling/fontLimitPixelSize" value="false"/>
|
||||
<property key="labeling/fontMaxPixelSize" value="10000"/>
|
||||
<property key="labeling/fontMinPixelSize" value="3"/>
|
||||
<property key="labeling/fontSize" value="11"/>
|
||||
<property key="labeling/fontSizeInMapUnits" value="false"/>
|
||||
<property key="labeling/fontSizeMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/fontSizeMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/fontStrikeout" value="false"/>
|
||||
<property key="labeling/fontUnderline" value="false"/>
|
||||
<property key="labeling/fontWeight" value="50"/>
|
||||
<property key="labeling/fontWordSpacing" value="0"/>
|
||||
<property key="labeling/formatNumbers" value="false"/>
|
||||
<property key="labeling/isExpression" value="true"/>
|
||||
<property key="labeling/labelOffsetInMapUnits" value="true"/>
|
||||
<property key="labeling/labelOffsetMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/labelOffsetMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/labelPerPart" value="false"/>
|
||||
<property key="labeling/leftDirectionSymbol" value="<"/>
|
||||
<property key="labeling/limitNumLabels" value="false"/>
|
||||
<property key="labeling/maxCurvedCharAngleIn" value="20"/>
|
||||
<property key="labeling/maxCurvedCharAngleOut" value="-20"/>
|
||||
<property key="labeling/maxNumLabels" value="2000"/>
|
||||
<property key="labeling/mergeLines" value="false"/>
|
||||
<property key="labeling/minFeatureSize" value="0"/>
|
||||
<property key="labeling/multilineAlign" value="0"/>
|
||||
<property key="labeling/multilineHeight" value="1"/>
|
||||
<property key="labeling/namedStyle" value="Medium"/>
|
||||
<property key="labeling/obstacle" value="true"/>
|
||||
<property key="labeling/placeDirectionSymbol" value="0"/>
|
||||
<property key="labeling/placement" value="2"/>
|
||||
<property key="labeling/placementFlags" value="10"/>
|
||||
<property key="labeling/plussign" value="false"/>
|
||||
<property key="labeling/preserveRotation" value="true"/>
|
||||
<property key="labeling/previewBkgrdColor" value="#ffffff"/>
|
||||
<property key="labeling/priority" value="5"/>
|
||||
<property key="labeling/quadOffset" value="4"/>
|
||||
<property key="labeling/repeatDistance" value="0"/>
|
||||
<property key="labeling/repeatDistanceMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/repeatDistanceMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/repeatDistanceUnit" value="1"/>
|
||||
<property key="labeling/reverseDirectionSymbol" value="false"/>
|
||||
<property key="labeling/rightDirectionSymbol" value=">"/>
|
||||
<property key="labeling/scaleMax" value="10000000"/>
|
||||
<property key="labeling/scaleMin" value="1"/>
|
||||
<property key="labeling/scaleVisibility" value="false"/>
|
||||
<property key="labeling/shadowBlendMode" value="6"/>
|
||||
<property key="labeling/shadowColorB" value="0"/>
|
||||
<property key="labeling/shadowColorG" value="0"/>
|
||||
<property key="labeling/shadowColorR" value="0"/>
|
||||
<property key="labeling/shadowDraw" value="false"/>
|
||||
<property key="labeling/shadowOffsetAngle" value="135"/>
|
||||
<property key="labeling/shadowOffsetDist" value="1"/>
|
||||
<property key="labeling/shadowOffsetGlobal" value="true"/>
|
||||
<property key="labeling/shadowOffsetMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/shadowOffsetMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/shadowOffsetUnits" value="1"/>
|
||||
<property key="labeling/shadowRadius" value="1.5"/>
|
||||
<property key="labeling/shadowRadiusAlphaOnly" value="false"/>
|
||||
<property key="labeling/shadowRadiusMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/shadowRadiusMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/shadowRadiusUnits" value="1"/>
|
||||
<property key="labeling/shadowScale" value="100"/>
|
||||
<property key="labeling/shadowTransparency" value="30"/>
|
||||
<property key="labeling/shadowUnder" value="0"/>
|
||||
<property key="labeling/shapeBlendMode" value="0"/>
|
||||
<property key="labeling/shapeBorderColorA" value="255"/>
|
||||
<property key="labeling/shapeBorderColorB" value="128"/>
|
||||
<property key="labeling/shapeBorderColorG" value="128"/>
|
||||
<property key="labeling/shapeBorderColorR" value="128"/>
|
||||
<property key="labeling/shapeBorderWidth" value="0"/>
|
||||
<property key="labeling/shapeBorderWidthMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/shapeBorderWidthMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/shapeBorderWidthUnits" value="1"/>
|
||||
<property key="labeling/shapeDraw" value="false"/>
|
||||
<property key="labeling/shapeFillColorA" value="255"/>
|
||||
<property key="labeling/shapeFillColorB" value="255"/>
|
||||
<property key="labeling/shapeFillColorG" value="255"/>
|
||||
<property key="labeling/shapeFillColorR" value="255"/>
|
||||
<property key="labeling/shapeJoinStyle" value="64"/>
|
||||
<property key="labeling/shapeOffsetMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/shapeOffsetMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/shapeOffsetUnits" value="1"/>
|
||||
<property key="labeling/shapeOffsetX" value="0"/>
|
||||
<property key="labeling/shapeOffsetY" value="0"/>
|
||||
<property key="labeling/shapeRadiiMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/shapeRadiiMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/shapeRadiiUnits" value="1"/>
|
||||
<property key="labeling/shapeRadiiX" value="0"/>
|
||||
<property key="labeling/shapeRadiiY" value="0"/>
|
||||
<property key="labeling/shapeRotation" value="0"/>
|
||||
<property key="labeling/shapeRotationType" value="0"/>
|
||||
<property key="labeling/shapeSVGFile" value=""/>
|
||||
<property key="labeling/shapeSizeMapUnitMaxScale" value="0"/>
|
||||
<property key="labeling/shapeSizeMapUnitMinScale" value="0"/>
|
||||
<property key="labeling/shapeSizeType" value="0"/>
|
||||
<property key="labeling/shapeSizeUnits" value="1"/>
|
||||
<property key="labeling/shapeSizeX" value="0"/>
|
||||
<property key="labeling/shapeSizeY" value="0"/>
|
||||
<property key="labeling/shapeTransparency" value="0"/>
|
||||
<property key="labeling/shapeType" value="0"/>
|
||||
<property key="labeling/textColorA" value="255"/>
|
||||
<property key="labeling/textColorB" value="0"/>
|
||||
<property key="labeling/textColorG" value="0"/>
|
||||
<property key="labeling/textColorR" value="0"/>
|
||||
<property key="labeling/textTransp" value="0"/>
|
||||
<property key="labeling/upsidedownLabels" value="0"/>
|
||||
<property key="labeling/wrapChar" value=""/>
|
||||
<property key="labeling/xOffset" value="0"/>
|
||||
<property key="labeling/yOffset" value="0"/>
|
||||
</customproperties>
|
||||
<blendMode>0</blendMode>
|
||||
<featureBlendMode>0</featureBlendMode>
|
||||
<layerTransparency>0</layerTransparency>
|
||||
<displayfield>pkuid</displayfield>
|
||||
<label>0</label>
|
||||
<labelattributes>
|
||||
<label fieldname="" text="Label"/>
|
||||
<family fieldname="" name="Ubuntu"/>
|
||||
<size fieldname="" units="pt" value="12"/>
|
||||
<bold fieldname="" on="0"/>
|
||||
<italic fieldname="" on="0"/>
|
||||
<underline fieldname="" on="0"/>
|
||||
<strikeout fieldname="" on="0"/>
|
||||
<color fieldname="" red="0" blue="0" green="0"/>
|
||||
<x fieldname=""/>
|
||||
<y fieldname=""/>
|
||||
<offset x="0" y="0" units="pt" yfieldname="" xfieldname=""/>
|
||||
<angle fieldname="" value="0" auto="0"/>
|
||||
<alignment fieldname="" value="center"/>
|
||||
<buffercolor fieldname="" red="255" blue="255" green="255"/>
|
||||
<buffersize fieldname="" units="pt" value="1"/>
|
||||
<bufferenabled fieldname="" on=""/>
|
||||
<multilineenabled fieldname="" on=""/>
|
||||
<selectedonly on=""/>
|
||||
</labelattributes>
|
||||
<SingleCategoryDiagramRenderer diagramType="Pie">
|
||||
<DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" sizeType="MM" minScaleDenominator="-4.65661e-10">
|
||||
<fontProperties description="Ubuntu,11,-1,5,50,0,0,0,0,0" style=""/>
|
||||
</DiagramCategory>
|
||||
</SingleCategoryDiagramRenderer>
|
||||
<DiagramLayerSettings yPosColumn="-1" linePlacementFlags="10" placement="2" dist="0" xPosColumn="-1" priority="0" obstacle="0" showAll="1"/>
|
||||
<editform></editform>
|
||||
<editforminit/>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<annotationform></annotationform>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
<excludeAttributesWMS/>
|
||||
<excludeAttributesWFS/>
|
||||
<attributeactions/>
|
||||
</qgis>
|