কিউজিআইএস সুরকারের লেআউটে সমন্বয় ব্যবস্থা যুক্ত করা হচ্ছে?


10

আমি জানতে চাই কি কিউজিআইএস সুরকার লেআউটে একটি গতিশীল স্থানাঙ্ক সিস্টেম ক্ষেত্র যুক্ত করার উপায় আছে কিনা।

আমি নথির নাম, ফাইলের পাথ ইত্যাদির মতো অনেক আইটেম যুক্ত করতে একটি এক্সপ্রেশন ব্যবহার করতে পারি তবে আমি স্থানাংক সিস্টেমটি কীভাবে যুক্ত করব তা বুঝতে পারি না?


1
আপনি যদি এখনই QGIS 3.x ব্যবহার করে থাকেন তবে আপনি আপনার সবুজ গ্রহণযোগ্য চেকমার্কটি QGIS 3.x উত্তরে সরিয়ে নিতে চাইতে পারেন।
পলিজিও

উত্তর:


7

এই উত্তরটি QGIS 3.0 প্রকাশের আগে সরবরাহ করা হয়েছিল এবং স্বীকার করা হয়েছিল।

কর্তৃপক্ষের আইডি (যেমন " EPSG: 4326 ") পেতে:

  • আপনি কেবল প্রকাশটি ব্যবহার করতে পারেন [% layer_property( 'your_layer_name_or_id', 'crs' ) %]

আপনি যদি সিআরএসের পাঠ্য বিবরণ পেতে চান (যেমন " WGS84 "):

  • আফাইক, আপনাকে অবশ্যই একটি কাস্টম ফাংশন তৈরি করতে হবে। এটি করতে, "একটি অভিব্যক্তি সন্নিবেশ করুন" এ যান এবং ফাংশন সম্পাদক ট্যাবে নিম্নলিখিত ফাংশনটি টাইপ করুন।

কোড:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def get_crs(layer_name, feature, parent):
    return QgsMapLayerRegistry.instance().mapLayersByName(layer_name)[0].crs().description()
  • "লোড" এ ক্লিক করুন
  • এক্সপ্রেশন ট্যাবে টাইপ করুন get_crs( 'your_layer_name' )

9

QGIS 3.x এর উত্তর:

পাইথন ছাড়াই সহজ সমাধানের জন্য নীচের অংশে মন্তব্য দেখুন

আপনার কাস্টম ফাংশনডિটারে এই স্ক্রিপ্টটি যুক্ত করুন:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def get_crs(layer_name, feature, parent):
    return QgsProject.instance().mapLayersByName(layer_name)[0].crs().description()

এখানে চিত্র বর্ণনা লিখুন

এবং তারপরে সিআরসি নামটি দিয়ে এক্সপ্রেশন সম্পাদকের সাথে পান

get_crs(@layer_name)

এখানে চিত্র বর্ণনা লিখুন

আপনার প্রকল্পের সিআরএস নামের জন্য (উদাহরণস্বরূপ আপনার মুদ্রণ বিন্যাসে প্রজেকশন) এটি ব্যবহার করুন:

আপনার কাস্টম ফাংশনডિটারে এই স্ক্রিপ্টটি যুক্ত করুন:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def get_projectcrs(project_crs, feature, parent):
    return QgsCoordinateReferenceSystem(project_crs).description()

এবং তারপরে এর সাথে এক্সপ্রেশন সম্পাদকটিতে সিআরএস নাম পান:

 get_projectcrs(@project_crs) 

অবশ্যই আপনি নিজেও টাইপ করতে পারেন 'EPSG:4326'ম্যানুয়ালি বা অন্য কোনও ফাংশন ব্যবহার করতে পারেন @project_crsযা ইপিএসজি-কোড দেয় returns

মন্তব্য:

Qgis 3.x পরিবর্তন সম্পর্কে আরও তথ্যের জন্য https://qgis.org/api/api_break.html দেখুন


ধন্যবাদ @ এমআরএক্সস্কয়ার! আমি পূর্বে ঠিক সেই কোডটি চেষ্টা করেছি কিন্তু স্তরটির নামটি পাস করার সময় @ ব্যবহার করিনি। তবে, আমি এখনও এটি কাজ করতে পারি না। আমি যখন লেআউট ভিউতে একটি মানচিত্র যুক্ত করি এবং পূর্বোক্ত ফাংশন সহ একটি লেবেল সন্নিবেশ করি, তখন 'আউটপুট পূর্বরূপ' কেবলমাত্র NUL দেখায় এবং লেবেলে কোনও তথ্য যুক্ত করা হয় না। আমি বেশ কয়েকবার সবকিছু যাচাই করেছি, মানচিত্রে একটি নাম (এবং আইডি) এবং একটি সিআরএস রয়েছে তবে কিছুই দেখা যাচ্ছে না। এটি নির্দিষ্ট সিআরএস ব্যবহার করা উচিত, ঠিক আছে?
টিঙ্কারফিল

অবশ্যই এটি লেআউট ভিউতে কাজ করবে না কারণ এটি একটি নির্দিষ্ট স্তরকে বোঝায়। আমি আমার উত্তরটি সম্পাদনা করেছি এবং আপনার প্রকল্পের ব্যবহৃত সিআরএস ফিরিয়ে দেওয়ার জন্য একটি ফাংশন যুক্ত করেছি । ব্যবহৃত প্রজেকশনটির নাম প্রদর্শন করতে আপনি এটি আপনার মুদ্রণ বিন্যাসে ব্যবহার করতে পারেন।
মিস্টারএক্সস্কোয়ার্ড

2
আপনার উত্তর A এর জন্য অজগর প্রকাশের দরকার নেই। আপনি `স্তর_প্রোপার্টি (@layer_name, 'crs_descript') can করতে পারেন`
এট্রিমেইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.