Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Dapatkan semua poin (lingkaran dengan jari-jari), yang tumpang tindih dengan titik yang diberikan

Ya, ini adalah hal yang geography dan metode spasial yang baik. Berikut ini contoh singkatnya:

DECLARE @Restaurant TABLE (
    Name nvarchar(50),
    Location geography,
    DeliveryRadiusMetres int
);

INSERT @Restaurant
VALUES
-- long lat
('Dominos','POINT(-0.109339 51.532835)',2000 ),
('Pizza Hut','POINT(-0.102961 51.541157)',2000 );

Perhatikan bahwa di sini untuk membangun geography nilai Saya menggunakan konversi implisit dari string, yang di balik layar memanggil geography::Parse .

DECLARE @MyLocation geography = 'POINT(-0.115063 51.550231)';

SELECT
    Name
FROM
    @Restaurant R
WHERE
    R.Location.STDistance(@MyLocation) <= R.DeliveryRadiusMetres
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang dinamakan pipa?

  2. Format sysjobhistory datetime &durasi Kolom di SQL Server

  3. TSQL Coba/Tangkap dalam Transaksi atau sebaliknya?

  4. Cara Mengekstrak data dari kolom xml di sql 2008

  5. Kesalahan 'sublaporan tidak dapat ditemukan di lokasi yang ditentukan. Harap verifikasi bahwa sublaporan telah diterbitkan dan nama sudah benar'