Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server tạo địa lý không gian ngẫu nhiên xung quanh điểm?

Tôi đã tìm thấy câu trả lời từ bài đăng này https://gis.stackexchange.com/a/25883/ 37373

Tôi đã điều chỉnh phản hồi thành mã SQL Server.

DECLARE @geo as GEOGRAPHY,@newgeo as GEOGRAPHY
SET @geo = (SELECT ZipGeo FROM Location.ZipCodes WHERE ZipCode='90210')

DECLARE @r float,@t float, @w float, @x float, @y float, @u float, @v float;

SET @u=RAND();
SET @v=RAND();

--8046m = ~ 5 miles
SET @r= 8046/(111300*1.0);
SET @w = @r * sqrt(@u);
SET @t = 2 * PI() * @v;
SET @x = @w * cos(@t);
SET @y = @w * sin(@t);
SET @x = @x / cos(@geo.Lat);

SET @newgeo = geography::STPointFromText('POINT('+CAST(@[email protected] AS VARCHAR(MAX))+' '+CAST(@[email protected] AS VARCHAR(MAX))+')',4326)
--Convert the distance back to miles to validate
SELECT @geo.STDistance(@newgeo)/1609.34



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL để sử dụng cột làm công thức tính giá trị

  2. Cách NTILE () hoạt động trong SQL Server

  3. Làm cách nào để bạn thêm một cột KHÔNG ĐẦY ĐỦ PHÍM NGOÀI vào bảng hiện có (được điền) trong MS SQL?

  4. Cách thay thế các giá trị Null bằng Không xác định trong Câu lệnh Chọn trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 111

  5. Thay thế ký tự null trong một chuỗi trong sql