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

Poligon Spasial SQL luar dalam

Anda dapat memeriksa, apakah hasil dari EnvelopeAngle() metode untuk geografi adalah 180, lalu gunakan ReorientObject() berfungsi untuk memperbaikinya.

Ini contohnya:

--A CW polygon
DECLARE @G3 GEOGRAPHY = 'POLYGON ((45 45, 44 45, 44 46, 45 46, 45 45))';    
SELECT @G3.EnvelopeAngle();                --180
SELECT @G3.ReorientObject().STAsText();    --POLYGON ((44 46, 44 45, 45 45, 45 46, 44 46))

EDIT seperti yang dinyatakan dalam komentar, Anda dapat memperbaiki geometri saat ini, menggunakan perintah pembaruan sederhana (jika Anda yakin itu tidak benar):

UPDATE foo_table SET bar_column = bar_column.ReorientObject() 
    WHERE bar_column.EnvelopeAngle() > 90


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci Utama Gabungan + Kunci Asing

  2. Cara Menggunakan GOTO di SQL Server

  3. SQL Server 2017:Menyalin Data SQL Server dari Linux ke Windows dengan SSIS

  4. Memahami Pentingnya Pengaturan Memori di SQL Server

  5. Bagaimana cara memilih indeks berkerumun di SQL Server?