একটি নিখুঁত সমাধান নয় তবে আপনি জ্যামিতি জেনারেটরটি ব্যবহার করতে পারেন যা ছেদটি প্রতিনিধিত্ব করার জন্য একটি ভিজ্যুয়ালাইজড লাইন যুক্ত করে। তারপরে আপনি এটির মূল লাইন বৈশিষ্ট্যটি ওভারল্যাপ করতে সেট করতে পারেন।
প্লাস চিহ্নে ক্লিক করে একটি নতুন প্রতীক স্তর যুক্ত করুন এবং 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()
। আশা করি ফলাফলটি নীচের মত দেখতে হবে (উপরে উল্লিখিত একই শৈলীর বৈশিষ্ট্যগুলি ব্যবহার করে):