mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-24 00:47:57 -05:00
This line symbol type is designed to replicate the ArcGIS Hash Line symbol layer type. It allows for a repeating line segment to be drawn over the length of a feature, with a line-sub symbol used to render each individual segment. To reduce code duplication, this is heavily based off the current line marker symbol layer, since the functionality is almost identical (draw some sub symbol at some interval along a line). Accordingly, I've split off QgsMarkerLineSymbolLayer to move as much of the common functionality as possible to a new abstract base class, so that only the actual marker/line segment rendering occurs in the marker line/hash line subclasses. This also gives the hash line all the existing placement options permissible for marker lines -- e.g. first/last vertex, mid points, regular intervals, etc. The hash line length and angle can have data defined overrides, which are evaluated per-line segment, allowing for the hash line to change size and angle over the length of a single rendered feature.
56 lines
2.6 KiB
Python
56 lines
2.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
***************************************************************************
|
|
__init__.py
|
|
---------------------
|
|
Date : May 2014
|
|
Copyright : (C) 2014 by Nathan Woodrow
|
|
Email : woodrow dot nathan at gmail dot com
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************
|
|
"""
|
|
|
|
__author__ = 'Nathan Woodrow'
|
|
__date__ = 'May 2014'
|
|
__copyright__ = '(C) 2014, Nathan Woodrow'
|
|
# This will get replaced with a git SHA1 when you do a git archive
|
|
__revision__ = '$Format:%H$'
|
|
|
|
from qgis.PyQt.QtCore import NULL
|
|
from qgis._core import *
|
|
|
|
from .additions.edit import edit, QgsEditError
|
|
from .additions.fromfunction import fromFunction
|
|
from .additions.markerlinesymbollayer import *
|
|
from .additions.metaenum import metaEnumFromType, metaEnumFromValue
|
|
from .additions.processing import processing_output_layer_repr, processing_source_repr
|
|
from .additions.projectdirtyblocker import ProjectDirtyBlocker
|
|
from .additions.qgsfeature import mapping_feature
|
|
from .additions.qgsfunction import register_function, qgsfunction
|
|
from .additions.qgsgeometry import _geometryNonZero, mapping_geometry
|
|
from .additions.qgssettings import _qgssettings_enum_value, _qgssettings_set_enum_value, _qgssettings_flag_value
|
|
from .additions.qgstaskwrapper import QgsTaskWrapper
|
|
from .additions.readwritecontextentercategory import ReadWriteContextEnterCategory
|
|
from .additions.validitycheck import check
|
|
|
|
# Injections into classes
|
|
QgsFeature.__geo_interface__ = property(mapping_feature)
|
|
QgsGeometry.__bool__ = _geometryNonZero
|
|
QgsGeometry.__geo_interface__ = property(mapping_geometry)
|
|
QgsGeometry.__nonzero__ = _geometryNonZero
|
|
QgsProcessingFeatureSourceDefinition.__repr__ = processing_source_repr
|
|
QgsProcessingOutputLayerDefinition.__repr__ = processing_output_layer_repr
|
|
QgsProject.blockDirtying = ProjectDirtyBlocker
|
|
QgsReadWriteContext.enterCategory = ReadWriteContextEnterCategory
|
|
QgsSettings.enumValue = _qgssettings_enum_value
|
|
QgsSettings.setEnumValue = _qgssettings_set_enum_value
|
|
QgsSettings.flagValue = _qgssettings_flag_value
|
|
QgsTask.fromFunction = fromFunction
|