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

SQL Server 2012, geografi.STIndeholder, forkert resultat?

Nu fandt jeg problemet. Brugeren tegnede polygonen med start nederst til højre og gik med uret. Hvis jeg omarrangerer punkterne fra største breddegrad og derefter går modsat ved at sortere på lang, lat virker det. Fandt en hjælper til det, men det virker kun hvis du "ved at det er forkert":

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

Bare sammensæt en lille løsning, der vil rette mine værdier:https://github.com/danielwertheim/GeographyFactory

og et blogindlæg om det: http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/

og en opfølgning om det egentlige "problem", venstrehåndsreglen:

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




  1. hvordan man får tid i millisekunder fra datofeltet i oracle for datoen 01-01-9999

  2. Sådan listes alle standardbegrænsninger med kolonner i SQL Server-databasen - SQL Server / TSQL selvstudium, del 92

  3. FATAL:adgangskodegodkendelse mislykkedes for bruger postgres (postgresql 11 med pgAdmin 4)

  4. Vil du reservere mySQL auto-incremented ID'er?