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

SQL Server - Fra længde- og breddegrad til geometridatatype

Du har en geometri, som gemmer en form i euklidisk geometri, og du vil associere et punkt på kloden, repræsenteret ved en bredde- og længdegrad, med det for at se, om det er indeni. Dette vil ikke virke på grund af den måde, SQL gemmer dataene på. Du skal sandsynligvis bruge Geografi-datatyper for at kontrollere dette - Breddegrad og længdegrad er punkter på en kugle (faktisk geodætiske data, da jorden ikke helt er en kugle.)

For mere information om, hvorfor de er forskellige, se denne forklaring fra Microsoft . Også dette svar om stackoverflow:GEOMETRY and GEOGRAPHY difference SQL Server 2008

For at konvertere dine data fra geometri til geografi, prøv:Geography::STGeomFromText(cast(GeomCol as varchar(max)), 4326)

Så kan du bruge STIntersects metode, dokumenteret af microsoft her .




  1. #1064 - Du har en fejl i din SQL-syntaks; tjek den manual, der svarer til din MySQL-serverversion

  2. Java Date Hibernate afskæringstidspunkt

  3. Adgangsværdi i resultatsætrækken, hvor værdien kommer fra et MySQL-funktionskald

  4. Nedetid og Hotpatch-anvendelsestilstand i adop R12.2