완벽한 솔루션은 아니지만 교차점을 나타내는 시각화 된 선을 추가하는 Geometry Generator 를 사용할 수 있습니다 . 그런 다음 이것을 원래 선 피처와 겹치도록 설정할 수 있습니다.
더하기 부호를 클릭하여 새 심볼 레이어를 추가하고 Geometry generator
심볼 레이어 유형으로를 선택하십시오 . 지오메트리 유형을로 설정하고 LineString / MultiLineString
다음 표현식을 사용하십시오.
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
다음 위치에서 특정 다각형에 대한 세부 사항을 추가해야합니다.
polygonLayer
다각형 레이어의 이름입니다
fieldName
필드의 이름입니다
value
특정 다각형의 기능 값입니다
시각적 선의 색상을 지정하려면 그리기 효과 속성 에서이를 수행해야 할 수 있습니다.
결과는 (비주얼 선이 원래 선과 완전히 겹치지 않았으므로 오프셋을 약간 수정 한 것입니다.)
그리고 다각형없이 :
편집하다:
다각형 피처를 교차하는 각 선 피처에 이것을 적용하려면 함수 편집기 로 이동 하여 다음 함수를 사용 polygon example_2
하십시오 (폴리곤 레이어의 이름과 일치하도록 이름 변경 ).
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def func(feature, parent):
polygon_layer = QgsMapLayerRegistry.instance().mapLayersByName( "polygon example_2" )[0]
feat_list = []
geoms = QgsGeometry.fromWkt('GEOMETRYCOLLECTION()')
for polygon_feat in polygon_layer.getFeatures():
if feature.geometry().intersects(polygon_feat.geometry()):
intersection = feature.geometry().intersection(polygon_feat.geometry())
feat_list.append(intersection)
for x in feat_list:
geoms = geoms.combine(x)
return geoms
로드 를 클릭 한 다음 표현식 탭으로 이동 하여을 입력하십시오 func()
. 결과는 다음과 같아야합니다 (위에서 언급 한 것과 동일한 스타일 속성 사용).