sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2012, geography.STInnehåller, fel resultat?

Nu hittade jag problemet. Användaren ritade polygonen med början nere till höger och gick medurs. Om jag ordnar om punkterna från största breddgraden och sedan går mot riktningen genom att sortera på lång, lat fungerar det. Hittade en hjälpare för det, men det fungerar bara om du "vet att det är fel":

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

Sätt bara ihop en liten lösning som fixar mina värden:https://github.com/danielwertheim/GeographyFactory

och ett blogginlägg om det: http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position/

och en uppföljning om det verkliga "problemet", vänsterregeln:

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




  1. MySQL SELECT-sats där värdet är i array

  2. Ogiltigt objektnamn efter återställning av SQL Server 2008-databasen

  3. Returnera senast infogade ID utan att använda en andra fråga

  4. Hur kan jag söka i alla kolumner i en tabell?