Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server 2012, geografia.STContains, risultato errato?

Ora ho trovato il problema. L'utente ha disegnato il poligono iniziando in basso a destra e procedendo in senso orario. Se riordino i punti dalla latitudine maggiore e poi procedo in senso inverso ordinando su long, lat funziona. Ho trovato un aiuto per questo, ma funziona solo se "sai che è sbagliato":

if(sqlGeography.EnvelopeAngle() > 90)
    sqlGeography ? sqlGeography.ReorientObject();

Basta mettere insieme una piccola soluzione che risolverà i miei valori:https://github.com/danielwertheim/GeographyFactory

e un post sul blog a riguardo: http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/

e un seguito sul vero "problema", la regola della mano sinistra:

http:// danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position-no/