sql >> Database >  >> RDS >> Sqlserver

SQL Ruimtelijke polygoon binnenstebuiten

U kunt controleren of het resultaat van de EnvelopeAngle() methode voor de geografie was 180, gebruik dan de ReorientObject() functie om het te corrigeren.

Hier is het voorbeeld:

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

BEWERKEN zoals vermeld in de opmerkingen, kunt u de huidige geometrieën corrigeren met een eenvoudig update-commando (in het geval u zeker weet dat ze niet correct zijn):

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


  1. Tafelaccordeon met php en MySQL

  2. Knex.js - Een veld bijwerken met een uitdrukking

  3. php wit scherm van de dood

  4. voeg xml-gegevens toe aan mysql met simpleXML