একটি বহুভুজের নিকটতম অংশ এবং বিন্দুর মধ্যে কীভাবে দূরত্ব এবং ভারবহন পাবেন?


9

আমি এসকিউএল লিখতে এবং পোস্টজিআইএস ব্যবহার করতে মোটামুটি নতুন, যদি এটি কিছুটা সহজ বা স্পষ্ট মনে হয়। আমার একটি পোস্টজিআইএস ডাটাবেসে বহুভুজ বৈশিষ্ট্যের একটি টেবিল রয়েছে এবং একটি পূর্বনির্ধারিত পয়েন্টের একটি নির্দিষ্ট দূরত্বে বহুভুজ বৈশিষ্ট্যগুলির সমস্ত বৈশিষ্ট্য, দূরত্ব এবং দিক নির্বাচন করতে আমার এসকিউএল কোয়েরি লিখতে হবে। আমি বৈশিষ্ট্যগুলি নির্বাচন করতে এবং দূরত্ব গণনা করতে সক্ষম হয়েছি (ST_ দূরত্ব ব্যবহার করে) তবে ভারবহন কীভাবে পাওয়া যায় তা নিয়ে কাজ করতে পারি না।

এটি এখন পর্যন্ত আমি স্ক্রিপ্টটি ব্যবহার করছি:

SELECT *,
  ST_Distance (Geometry, ST_GeomFromText ('POINT(292596 90785)', 27700))
FROM mytable
WHERE
  ST_DWithin(
    Geometry,
    ST_GeomFromText('POINT(292596 90785)', 27700),
    250) 

আমি দূরত্বের পাশাপাশি বৈশিষ্ট্যগুলি বহন করতে কীভাবে কাজ করব?

উত্তর:


4

ভারবহন গণনা করতে আপনি ST_Azimuth ব্যবহার করতে পারেন তবে প্যারামিটার হিসাবে এটি কেবলমাত্র পয়েন্ট জ্যামিতি নেয়, তাই আপনাকে সিদ্ধান্ত নিতে হবে আপনি কোনটি ভার্চিং করতে চান।

@ নিক্লাস প্রস্তাবিত হিসাবে আপনি সবচেয়ে সংক্ষিপ্ত রেখা বেছে নিতে পারেন (এটি ইতিমধ্যে আপনি যে দূরত্বটি গণনা করেছেন এটিই এটি), যা বহুভুজতে পৌঁছানোর জন্য আপনার যদি দ্রুততম "দিকনির্দেশ" প্রয়োজন হয় তবে তা বোঝা যায়। অন্য যে কোনও কিছুর জন্য, আমি আপনাকে এটি বহুভুজ সেন্ট্রয়েড (ST_Centroid) এর বিপরীতে গণনা করার পরামর্শ দিচ্ছি, যা স্বেচ্ছাসেবী আকারের জন্য আরও ভাল ফলাফল দেওয়া উচিত।


2

ব্যবহার

ST_Azimuth (ST_Shortestline (geom1, geom2))

সম্পাদন করা

আমি কেবল বুঝতে পেরেছি যে এসT_Azimuth আর্টুমেটন হিসাবে একটি লাইনস্ট্রিং নেয় না সুতরাং এর পরিবর্তে আপনাকে এটি দুটি পয়েন্ট দিতে হবে।

জ্যামিতির একটি যদি বিন্দু হয় তবে আপনি সরাসরি এটি ব্যবহার করতে পারেন এবং বহুভুজের বিন্দুটি পেতে ST_ClosestPoint ব্যবহার করতে পারেন।


1

ST_Azimuth হ'ল ফাংশন যা আপনি চান। এটি উত্তর থেকে ঘড়ির কাঁটার দিকে রেডিয়ানে কোণটি দেয় returns ST_Azimuth()পৃষ্ঠার নমুনাটি যেমন দেখায়, কেবল এটি degrees()ফাংশনে মুড়িয়ে ফেলা আপনাকে ডিগ্রিতে কোণ দেবে যদি এটি আপনার প্রয়োজন হয়।

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