sql >> Database >  >> RDS >> Sqlserver

SQL Server - Van lengte- en breedtegraad tot gegevenstype geometrie

Je hebt een meetkunde, die een vorm opslaat in de Euclidische meetkunde, en je wilt een punt op de wereldbol, vertegenwoordigd door een lengte- en breedtegraad, ermee associëren om te zien of het binnenin ligt. Dit werkt niet vanwege de manier waarop SQL de gegevens opslaat. U moet waarschijnlijk aardrijkskundegegevenstypen gebruiken om dit te controleren - Breedte- en lengtegraad zijn punten op een bol (eigenlijk geodetische gegevens, aangezien de aarde niet echt een bol is.)

Voor meer informatie over waarom ze anders zijn, zie deze uitleg van microsoft . Ook dit antwoord op stackoverflow:GEOMETRY en GEOGRAFIE verschil SQL Server 2008

Om uw gegevens van geometrie naar geografie te converteren, probeert u:Geography::STGeomFromText(cast(GeomCol as varchar(max)), 4326)

Dan kun je de STIntersects . gebruiken methode, gedocumenteerd door microsoft hier .




  1. Voer een query uit met samenvoeg- en door komma's gescheiden waarden in kolom in Laravel

  2. Geneste JSON-gegevens opslaan in een MySQL-database met Hibernate

  3. Een rapport groeperen in Access 2016

  4. Sorteervolgorde van tekenreeksen (LC_COLLATE en LC_CTYPE)