পোস্টজিআইএস ল্যাট / দীর্ঘ বাউন্ডিং বাক্স দ্বারা নির্বাচন করুন


18

আমার একটি মানচিত্রে আঁকা বাক্স থেকে একটি মিনিল্যাট, মিনিলং, ম্যাক্সল্যাট এবং ম্যাক্সেলং রয়েছে। এই মুহুর্তে, বাক্সের সমস্ত পয়েন্ট পাওয়ার জন্য আমার ক্যোয়ারীটি এমন দেখাচ্ছে:

SELECT *
FROM geomTable
WHERE (longitude BETWEEN minLon AND maxLon)
AND (latitude BETWEEN minLat AND maxLat)

আমি ফলাফল পেতে ল্যাট / লম্বা কলামগুলির পরিবর্তে জ্যামিতি কলামটি ব্যবহার করতে চাই। আমি এই ক্যোয়ারির চেষ্টা করেছি:

SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326);

এই পোস্ট থেকে: পোস্টগিজ ব্যবহার করে বাউন্ডিং বক্স নির্বাচন করুন তবে এটি কোনও ফল দিচ্ছে না।

পোস্টগ্রিসে জ্যামিতি ব্যবহার করে ন্যূনতম এবং সর্বাধিক ল্যাট / লম্বা দ্বারা তৈরি একটি বাক্সের মধ্যে কীভাবে সমস্ত পয়েন্ট নির্বাচন করতে হবে তার উদাহরণ কারও আছে?


আপনি PostGIS এর কোন সংস্করণ ব্যবহার করছেন?
ম্যাপারজ


2
উভয় জিওম কলাম একই এসআরডিডে রয়েছে?
nickves

আমি মনে করি আমি আমার পদ্ধতির সাথে দূরে থাকব ... আমার কাছে কেবল একটি জিম কলাম রয়েছে। এটি এসআরআইডি 2223
bl8rchk

@ bl8rchk টেবিল geomTableএবং ক্ষেত্র mytable.geomকি?
theartofbeing

উত্তর:


16

আপনার ডেটা ল্যাট / লম্বা নয়, সুতরাং আপনাকে আপনার বাক্সটিকে আপনার ডেটার স্থানাঙ্ক স্থানে ঠেলাতে হবে:

SELECT *
FROM mytable
WHERE 
  mytable.geom && 
  ST_Transform(ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326), 2223);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.