sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Spatial polygon ut och in

Du kan kontrollera om resultatet av EnvelopeAngle() metoden för geografin var 180, använd sedan ReorientObject() funktion för att korrigera det.

Här är provet:

--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))

REDIGERA som anges i kommentarerna kan du korrigera nuvarande geometrier med ett enkelt uppdateringskommando (om du är säker på att de inte är korrekta):

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


  1. Konvertera datum från åååå-mm-dd till dd månadsnamn år

  2. Sortering i SQL Server

  3. Hur får man kopieringskommandot att fortsätta köra i rödskiftning även efter att lambdafunktionen som initierade det har gått ut?

  4. Ge behörigheter till en MySQL-användare på Linux via kommandoraden