sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server - Från longitud och latitud till geometridatatyp

Du har en geometri, som lagrar en form i euklidisk geometri, och du vill associera en punkt på jordklotet, representerad av en latitud och longitud, med den för att se om den är inuti. Detta kommer inte att fungera på grund av hur SQL lagrar data. Du måste antagligen använda geografidatatyper för att kontrollera detta - Latitud och longitud är punkter på en sfär (Faktiskt geodetiska data, eftersom jorden inte riktigt är en sfär.)

För mer information om varför de är olika, se denna förklaring från Microsoft . Även detta svar om stackoverflow:GEOMETRY and GEOGRAPHY difference SQL Server 2008

För att konvertera dina data från geometri till geografi, prova:Geography::STGeomFromText(cast(GeomCol as varchar(max)), 4326)

Sedan kan du använda STIntersects metod, dokumenterad av Microsoft här .




  1. Det går inte att hämta data från mysql-databasen till ListView i min Android-applikation

  2. SQL :i klausul i lagrad procedur:hur man skickar värden

  3. Doctrine 2 DQL CASE WHEN in Count

  4. Mysql:Ställ in kolumnteckenuppsättning