sql >> Databáze >  >> RDS >> Sqlserver

SQL Prostorový polygon naruby

Můžete zkontrolovat, zda je výsledek EnvelopeAngle() metoda pro geografii byla 180, pak použijte ReorientObject() funkce k jeho opravě.

Zde je ukázka:

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

UPRAVIT jak je uvedeno v komentářích, aktuální geometrie můžete opravit pomocí jednoduchého příkazu aktualizace (v případě, že jste si jisti, že nejsou správné):

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


  1. Jak načíst data do pand z velké databáze?

  2. Existuje způsob, jak překonat DSRA9010E, že 'setReadOnly' není podporováno na výjimce WebSphere?

  3. Jak přidat nový sloupec identity do tabulky na SQL Server?

  4. mysql STR_TO_DATE nefunguje