পোস্টজিআইএসে সান্নিধ্য অনুসন্ধানের জন্য ST_DWithin এবং ST_ দূরত্বের মধ্যে পার্থক্য কী?


14

জ্যামিতির ক্ষেত্রে সংরক্ষিত দ্রাঘিমাংশ / দ্রাঘিমাংশ স্থানাঙ্কের সাথে আমার একটি টেবিলে রেকর্ড রয়েছে। একজন ব্যবহারকারী সরবরাহিত রেফারেন্স পয়েন্টের নিকটে আমি সমস্ত রেকর্ড খুঁজে পেতে চাই। দ্রষ্টব্য "কাছাকাছি" এর অর্থ সম্ভবত 100 কিলোমিটারেরও কম (সম্ভবত আরও ছোট)।

বেশিরভাগ উদাহরণ আমি ব্যবহার দেখতে পাচ্ছি ST_DWithin। এমন কোনও কারণ আছে যা আপনি ব্যবহার করতে পারবেন না ST_Distance? এটি ব্যবহার ST_DWithinএবং ST_Distanceকরার মধ্যে পার্থক্য কী ?

উদাহরণ স্বরূপ:

SELECT name, ST_AsText(coords)
FROM places
WHERE ST_DWithin(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326), 1)

বনাম

SELECT name, ST_AsText(coords)
FROM places
WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1

উত্তর:


15

ST_Distance হ'ল একটি গণনা যা প্রতিটি সারিতে সম্পাদন এবং মূল্যায়ন করতে হবে। ST_DWithin একটি সূচক ব্যবহার করতে পারে, তাই এটি সম্ভবত আরও দ্রুত হওয়ার সম্ভাবনা রয়েছে ।


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