QGIS সহ একটি নির্বাচিত বহুভুজের সীমানা বক্সের স্থানাঙ্কগুলি গণনা করুন


17

আমি কেবল ম্যানুয়ালি (এবং কিছুটা ভুলভাবে আমি নিশ্চিত) একটি কাউন্টি বহুভুজ জন্য সীমানা বক্স স্থানাঙ্ক পুনরুদ্ধার, যা কাউন্টি আকারের বৃহত্তর স্তর থেকে একটি নির্বাচন। আমি দ্রুত এবং হাতছাড়া না এটি গণনা করতে একটি QGIS প্লাগইন বা অন্যান্য ফাংশন ব্যবহার করতে সক্ষম হতে চাই। এটি প্রায় অবশ্যই সম্ভব তবে আমি গুগল অনুসন্ধানের সাথে কিছুই খুঁজে পাইনি

উত্তর:


26

নিম্নলিখিত ছোট পাইথন ফাংশনটি বর্তমানে সক্রিয় বৈশিষ্ট্যের বাউন্ডিং বক্স স্থানাঙ্কগুলি আউটপুট দেবে:

def printBB():
    feature = iface.activeLayer().selectedFeatures()[0]
    print feature.geometry().boundingBox().toString()

ফাংশনটি সংজ্ঞায়িত করতে, প্লাগইনস মেনু থেকে পাইথন কনসোলটি খুলুন, কনসোলে তিনটি লাইন অনুলিপি করে পেস্ট করুন এবং এন্টার টিপুন। তারপরে আপনি printBB()পছন্দসই বৈশিষ্ট্যটি নির্বাচিত হওয়ার সময় এন্টার টিপে টাইপ করে ফাংশনটি কল করতে পারেন ।


1
আমি এই স্ক্রিপ্টটি চালানোর চেষ্টা করার সময় আমি এই ত্রুটিটি পেয়েছি: File "<input>", line 4 printBB() ^ SyntaxError: invalid syntax
সিবিউন

@ সিবিবুন নিশ্চিত করুন যে আপনার স্তরগুলি স্তর / সামগ্রীর সারণিতে নির্বাচিত রয়েছে - এটি এটির পক্ষে অত্যন্ত সংবেদনশীল!
DPSSpatial

সাহায্যের জন্য ধন্যবাদ. আমি এন্টার টিপতে ভুলে যাচ্ছিলাম এটিকে কল করার আগে ফাংশন প্রিন্টবিবি () পুরোপুরি সংজ্ঞায়িত করতে।
cbunn

2
আমাকে লাইন 3
টু স্ট্রিং

17

কিউজিআইএস এটি লেয়ার এক্সট্যান্ট থেকে পলিগনের মাধ্যমে করতে পারে

ভেক্টর - গবেষণা সরঞ্জামগুলি - স্তর স্তর থেকে বহুভুজ

এক্সএমএন এক্সম্যাক্স ইয়িমিন ইয়েম্যাক্স এরিয়া প্রস্থের উচ্চতা এর মতো বৈশিষ্ট্য সহ একটি নতুন শেফফিল তৈরি করবে


1
আপনি চেক করতে Use only selected obectsএবং calculate for every objectকাঙ্ক্ষিত ফলাফল পেতে।
AndreJ

হুম আমার পক্ষে কাজ করে না,
আউটপুটযুক্ত শেফফিলটি

1
আপনি যদি কেবলমাত্র অবজেক্ট নির্বাচন করেছেন তবে কেবল 'কেবলমাত্র নির্বাচিত অবজেক্টগুলি ব্যবহার করুন' তা পরীক্ষা করতে চান। আমি উভয় ক্ষেত্রটি চেক না করে রেখেছি এবং একটি দুর্দান্ত ফলাফল অর্জন করেছি।
জোহান্না

4

পাইথনে পাইএসএইচপি প্লাগইন ব্যবহার করে আপনি এটিও করতে পারেন .. এটি অনেক সহজ ...

import shapefile

sf = shapefile.Reader("Path to shapefile...") 
shapes = sf.shapes() 
bbox = shapes[0].bbox # Retrieves the bounding box of the first shape

print bbox # Will print the bounding box coordinates

পাইএসএইচপি এবং অন্যান্য কার্যকারিতা সম্পর্কে আরও তথ্য এখানে পাওয়া যাবে


3

আপনার যদি বহু বহুভিত্তের সীমানা বাক্সের দরকার হয় তবে আপনি আপনার স্তরটি WRITE_BBOX = YES বিকল্পের সাহায্যে জিওজেএসনে "সেভ করুন ..." করতে পারেন এবং আপনার "জ্যামিতি" বৈশিষ্ট্যের আগে একটি "ববক্স" বৈশিষ্ট্য থাকবে, এমনকি বহুগুণ জন্যও।

..., "bbox": [ -70.062408006999874, 12.417669989000046, -69.876820441999939, 12.632147528000104 ], "geometry": ...

1

অন্য একটি তালিকা হিসাবে আমি আমদানি করতে পারি এমন ক্ষেত্র তৈরি করতে আমাকে এটি করতে হয়েছিল।

  1. কিউজিআইএস প্লাগইন ফিল্ডপাইকুলেটর ইনস্টল করুন
  2. স্তরটির সম্পাদনা টগল করুন
  3. স্ট্রিং হিসাবে অ্যাট্রিবিউট টেবিলে নতুন কলাম তৈরি করুন যেমন বাক্স (সম্পাদনাগুলি সংরক্ষণ করুন)
  4. ফিল্ডপাইকুলেটর খুলুন
  5. ববক্সে আপডেট ফিল্ড সেট করুন
  6. ফিল্ড এক্সপ্রেশন এ জাতীয় কিছু টাইপ করুন:

    bb = $geom.boundingBox().toString()

    bb = bb.replace(' ','')

    bb = bb.replace(':',',')

    value = bb

  7. চালান

  8. সম্পাদনা বন্ধ করুন এবং স্তরটি সংরক্ষণ করুন

1

দ্রুত অ্যাক্সেসের জন্য, বিকল্পটি সারণীতে ববক্সের স্থানাঙ্ক রাখা একটি বিকল্প।

  • গুগল সম্পাদনা মোড
  • ফিল্ড ক্যালকুলেটর চালু করুন
  • নতুন ক্ষেত্র তৈরি সেট করুন, সেট নাম (যেমন xmin), টাইপ (দশমিক), দৈর্ঘ্য, (নির্ভুলতা)
  • এক্সপ্রেশন: x_min ($ জ্যামিতি)
  • আপনি এলইএফটি সমন্বয় সহ বৈশিষ্ট্য সারণীতে একটি নতুন ক্ষেত্র পাবেন।

    এক্সপ্রেশন সহ শীর্ষ, বটম, শীর্ষের জন্য এটি পুনরাবৃত্তি করুন:

  • x_max ($ জ্যামিতি)
  • y_min ($ জ্যামিতি)
  • y_max ($ জ্যামিতি)
  • ফলাফল উদাহরণ এখানে চিত্র বর্ণনা লিখুন

    তারপরে বৈশিষ্ট্যটি পরিবর্তিত হলে আপনি এই ক্ষেত্রগুলিকে স্বয়ংক্রিয়ভাবে আপডেট করতে অটোফিল্ডস প্লাগইন সেট করতে পারেন ।

    আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
    Licensed under cc by-sa 3.0 with attribution required.