এক স্তরে একাধিক স্কেলের জন্য ডেটা সংজ্ঞায়িত লেবেল অবস্থান


10

আমি আমার প্রকল্পগুলির জন্য আরও ভাল লেবেলিং-সলিউশন খুঁজছি। মনে হচ্ছে এটি কঠিন - তবে আমি কি কেবল অন্ধ?

আমার প্রকল্পগুলি: আমি মুদ্রিত বাইক-হাইক-বই তৈরি করি। মূল স্কেলটি 1: 75k এবং সেখানে 10 কে সিটির স্কেল এবং 200 কে ওভারভিউ স্কেল রয়েছে। যেহেতু আমি লেবেল স্থাপনের "কার্টোগ্রাফিক" মানের থাকতে পছন্দ করি, তাই আমি প্রতিটি একক লেবেল স্পর্শ করি এবং এটিকে সেরা অবস্থানে নিয়ে যাই। আমাকে প্রতিটি একক স্কেলের জন্য এটি করতে হবে যাতে 3 স্কেলের জন্য আমার লেবেলিং কলামগুলি দেখতে দেখতে ('স্কেল 1' 10 কে 'স্কেল 2' 75 কে এবং '200 স্ক্রিন 3' এর জন্য দেখায়):

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

তবে আমি বিশদটি ব্যাখ্যা করার আগে, আমি এই সাধারণ উদাহরণ-প্রকল্পটি তৈরি করি যেখানে আপনি আমার (পুরানো) লেবেলিং সমাধানটি 3 স্কেলের জন্য দেখতে ও পরীক্ষা করতে পারেন: http://www.map-site.de/tmp/LabelingExample.zip

ঠিক আছে, এটি কাজ করছে তবে:

  • আপনার প্রতিটি স্কেলের জন্য লেবেলিং কলাম দরকার
  • আপনার প্রতিটি স্কেলের জন্য একটি স্তর প্রয়োজন

আমি নকল স্তর এবং টন কলামগুলি ছাড়াই আরও ভাল সমাধানের সন্ধান করছি। আমি আপনার সৃজনশীল মনে ভরসা!

সম্পাদনা: উদাহরণ হিসাবে আমি এই দুটি খুব ঘন মানচিত্র যুক্ত করেছি:

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

"সেন্ট পলাস ডম" এর জন্য কেবলমাত্র একটি একক সম্ভাব্য অবস্থান এবং এটি কোনও চতুর্ভুজ নয়: এখানে চিত্র বর্ণনা লিখুন

প্রতিটি লেবেল ম্যানুয়ালি সরানো উচিত। কিছু লেবেল চতুর্দিকে নেই।


লেবেলগুলির কি কিছু নির্দিষ্ট মানদণ্ড সম্পাদন করা দরকার? "সেরা অবস্থান" দিয়ে আপনার অর্থ কী তা আমি বুঝতে পারি না।
এমগ্রি

1
"সেরা অবস্থান" সহ আমি কার্টোগ্রাফিক দাবি অনুসারে একটি অবস্থান বুঝি। এটি আরও সাবজেক্টিভ।
এমএপ

2
আমি দেখতে পেয়েছি যে আপনার উদাহরণটি আমার কাছে নেই এমন ফন্ট, 'নোটো সানস' ব্যবহার করে এবং আমি অনুমান করছি যে এটি অন্যদের ক্ষেত্রেও হবে। আপনি এখানে ফন্টটি ডাউনলোড করতে পারেন google.com/get/noto ফন্টগুলি ইনস্টল করার পরে আপনাকে কিউজিআইএস পুনরায় চালু করতে হবে।
টিজে রকফেলার ২

এই লিঙ্কটি যুক্ত করার জন্য ধন্যবাদ - এটি আমার পুদিনা ইনস্টলেশনটির স্ট্যান্ডার্ড ফন্ট।
এমএপি

উত্তর:


7

আমার বলতে হবে যে আপনি যা অনুরোধ করছেন তা কিছুটা জটিল কারণ আপনি চান যে লেবেলটি ছোট আকারে পরিষ্কারভাবে পাশাপাশি বৃহত্তর স্কেল (সেরা ফিট) এ দৃশ্যমান হোক। সুতরাং, এখানে ধারণাটি হল কীভাবে পয়েন্টটি বিভিন্ন স্কেলে দৃশ্যমান হতে পারে to

বেশ কয়েকটি পরীক্ষার পরে আমি দেখতে পেলাম যে প্রতিটি স্কেল পরিসরের জন্য কয়েকটি কলাম তৈরি করার পরিবর্তে এবং নির্দিষ্ট পয়েন্টে x এবং y এর জন্য স্থানাঙ্ক স্থাপনের পরিবর্তে আপনি সর্বোত্তম অবস্থানের জন্য প্রতিটি পয়েন্টের জন্য অগ্রাধিকার পজিশনের জন্য কেবল একটি কলাম তৈরি করতে পারেন, আপনি নীচে দেখতে পারেন (I আপনার ফাইলের অবস্থানগুলি অনুসরণ করেছে):

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

তারপরে, আপনি যান Layer propoerties -> Labels -> Placement -> Offset from pointবা Around point, উভয়ই ঠিক আছে, তবে আমি বেছে নিয়েছি Offset from point

  1. Quadrantনির্বাচন Data defined override -> Edit, এবং নিম্নলিখিত সূত্র লিখুন:

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

    CASE 
    WHEN  $scale >= 200000 THEN  "priority"  
    WHEN  $scale < 200000 and $scale >= 75000 THEN  "priority"   
    WHEN  $scale < 75000 and $scale >=10000 THEN  5
    WHEN  $scale < 10000 THEN 2 
    END
    

    এখানে, "Priority"ক্ষেত্রের নাম নির্ধারিত পয়েন্টের অবস্থানPriority

  2. উন্নত দৃশ্যমানতার জন্য আপনাকে পয়েন্টগুলি স্থানান্তর করতে অফসেট ব্যবহার করতে হবে এবং আমি নিম্নলিখিত সূত্রটি ব্যবহার করেছি:

    CASE
    WHEN  $scale >= 200000 THEN '0.001,0'
    WHEN  $scale < 200000 and $scale >= 75000 THEN '0.001,0'
    WHEN  $scale < 75000 and $scale >=10000 THEN '0.0005,0'
    WHEN  $scale < 10000 THEN '0.0001,0'
    END
    

বিভিন্ন স্কেলে এখানে আউটপুট দেওয়া হচ্ছে:

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

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

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

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

প্রতিটি সংখ্যা [0-8] কোন স্থানে প্রতিনিধিত্ব করে তা দেখার জন্য, দয়া করে নীচের চিত্রটি দেখুন:

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

আপনি প্রতিটি অবস্থানের সাথে সঙ্গতিপূর্ণ মান যুক্ত করে লেবেলের অবস্থান নিয়ন্ত্রণ করতে পারেন। তবে দুর্ভাগ্যক্রমে, আপনি 'ক্লিক-এ-মুভ' পদ্ধতির মাধ্যমে এটি করতে পারবেন না। আপনাকে এটি বৈশিষ্ট্য সারণীতে করতে হবে in

হালনাগাদ:

আপনার প্রয়োজনীয়তার ভিত্তিতে যে 9 চতুর্ভুজ পদ পর্যাপ্ত নয়, আমি পেয়েছি যদি আপনি Cartographyপরিবর্তে নির্বাচন করেন Offset from pointএবং অগ্রাধিকারটি নির্বাচন করেন তবে নীচের চিত্রের মতো আপনার 9 এর পরিবর্তে 12 অগ্রাধিকার পজিশন থাকবে আপনার Textপ্রকারের ক্ষেত্র তৈরি করতে হবে , তারপরে আপনার সেরা অবস্থান 'টিএল', 'টিএসএল', 'টি' ... ইত্যাদির জন্য যে সংক্ষিপ্তসারটি চান তা কেবল রাখুন। এছাড়াও, লেবেলটি পয়েন্টটি আটকানো থেকে দূরে রাখতে আপনি একটি দূরত্ব প্রবেশ করতে পারেন।

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


এমন একটি পদ্ধতির কথা যা আমি এখনও অবধি চেষ্টা করি নি। 'ক্লিক-এ-মুভ' দ্বারা চতুষ্কোণে লেবেলটি রাখার জন্য আপনি কি কোনও উপায় দেখতে পাচ্ছেন?
এমএপি

দুর্ভাগ্যক্রমে, আপনি 'ক্লিক-এ-মুভ' পদ্ধতির মাধ্যমে এটি করতে পারবেন না। আপনাকে এটি বৈশিষ্ট্য সারণীতে করতে হবে in তবে 1 টি কলাম যুক্ত করা প্রতিটি এক্স, ওয়াই স্কেলের স্তরের 6 টি কলামের চেয়ে ভাল। আমি আমার উত্তর আপডেট।
আহমাদব

1
শেষ দিনগুলিতে, আমি একটি সমাধান দেওয়ার চেষ্টা করেছি কিন্তু আমি ছেড়ে দিয়েছি কারণ আমি ভেবেছিলাম যে সমস্যাটি আরও সাধারণ সমাধান দেওয়ার জন্য খুব সাবজেক্টিভ was পরিবর্তে, @ahmadhanb এর সমাধান এটি করার জন্য যথেষ্ট সৃজনশীল বলে মনে হচ্ছে (যদিও আমি এটি পরীক্ষা করিনি)। আমার জন্য +1
এমগ্রি

আমি আপনার সাথে একমত. এখানে সাবজেক্টিভিটি বেশি। এটি লেবেলের অবস্থানগুলি উপযুক্ত কিনা তা আপনি কীভাবে বিচার করতে পারেন সে সম্পর্কে এটি একটি ব্যক্তিগত মতামত।
আহমাদব

1
অগ্রাধিকারের অবস্থানগুলি সম্পাদনা করতে সনাক্তকরণ সরঞ্জামটি ব্যবহার করবেন না, নির্বাচিত সরঞ্জামটি ব্যবহার করা ভাল। বৈশিষ্ট্য সারণীটি খুলুন, এবং কেবলমাত্র নির্বাচিত পয়েন্টগুলি দেখানোর জন্য চয়ন করুন। সেশন সম্পাদনা শুরু করুন, এবং অবস্থান আপডেট করুন এবং সম্পাদনাগুলি সংরক্ষণ করুন। আপনি যদি ইতিমধ্যে ডেটা সংজ্ঞায়িত ওভাররাইডে এক্সপ্রেশনটি যোগ করেন তবে অগ্রাধিকারের অবস্থানটি সরাসরি আপডেট করা হবে।
আহমাদব

3

আপনি এক্সপ্রেশন ব্যবহার করে একাধিক স্তর থেকে মুক্তি পেতে পারেন।

আমি আপনার উদাহরণে যা দেখতে পেলাম তার থেকে স্তরগুলির মধ্যে প্রধান পার্থক্য হ'ল Data defined Coordinate X Yবিভিন্ন স্কেল এক্স, ওয়াইয়ের মানগুলির প্রতি নির্দেশিত সংজ্ঞাগুলি।

আপনি এক্স এবং ওয়াইয়ের পাশের ড্রপডাউনগুলি নির্বাচন করে এবং সম্পাদনা নির্বাচন করে একটি একক স্তরে এটি সম্পাদন করতে পারবেন ... যা একটি এক্সপ্রেশন স্ট্রিং বিল্ডারকে সামনে আনবে।

এক্স এর জন্য আপনি এর মতো কিছু ব্যবহার করতে পারেন

if(@map_scale <=10000, "scale1-x", if(@map_scale <=75000, "scale2-x", "scale3-x"))

এবং ওয়াইয়ের জন্য আপনি এর মতো কিছু ব্যবহার করতে পারেন

if(@map_scale <=10000,  "scale1-y" , if(@map_scale <=75000, "scale2-y", "scale3-y"))

মানচিত্রের স্কেল 1: 10,000 এর চেয়ে কম বা সমান হলে স্কেল 1 x, y মানগুলি ব্যবহার করা উচিত এবং মান 2 স্কেল 1: 75,000 এর চেয়ে কম বা সমান এবং 3 x, y এর উপরে যে কোনও কিছুর জন্য হতে হবে ।

যদি আপনাকে প্রতিটি স্কেলের জন্য ম্যানুয়ালি অবস্থান করতে হয় তবে আমি দেখতে পাচ্ছি না আপনি কীভাবে স্কেল # -x এবং স্কেল # -y কলামগুলি থেকে প্রতিটি স্তরের আপনি সংজ্ঞায়িত করতে পেরেছেন।


আমার বিভিন্ন ওজনযুক্ত লেবেলগুলির একটি উচ্চ গন্তব্য রয়েছে। আমাকে সেগুলি ম্যানুয়ালি রাখতে হবে যেহেতু কোনও স্বয়ংক্রিয়তা 'রিয়েল' কার্টোগ্রাফিক উপায়ে এটি করতে সক্ষম হয় না। এবং মানচিত্রগুলি প্রতি বছর মুদ্রিত এবং আপডেট হবে যাতে লেবেলটি কিছুটা স্থির থাকতে হবে। en.wikedia.org/wiki/Cartographic_lableing#Playment
এমএপি

@ ম্যাপ ঠিক আছে, যাতে আপনি জানতে পারেন যে আপনাকে ম্যানুয়ালি আইটেমগুলি অবস্থান করতে হবে, আপনি কেবল কম স্তর এবং কলামগুলি চান।
টিজে রকফেলার 19

1
এটি মাত্র একটি স্তর দিয়ে 3 স্কেলের লেবেল প্রদর্শন করতে সহায়তা করে। তবে কিউজিআইএস অভিব্যক্তির মাধ্যমে স্থানাঙ্কগুলি "ফিরিয়ে" লিখতে সক্ষম হয় না। সুতরাং আমি যদি আপনার উল্লেখ অনুযায়ী স্কেল-এক্সপ্রেশনটি ব্যবহার করি তবে আমি আর লেবেলগুলি স্থানান্তর করতে পারব না।
এমএপি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.