Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Cercle SQL Server

Votre problème est que vous dessinez un cercle en coordonnées géographiques. Google Maps utilise la projection Web Mercator https://en.wikipedia.org/wiki/Web_Mercator , de sorte que votre cercle va être un ovale. Si vous souhaitez créer quelque chose qui ressemble à un cercle dans Google Maps, vous devez le créer dans un ensemble de données avec la projection Web Mercator. (Je dis délibérément "ressemble à un cercle" car si vous le projetez sur un autre système, par exemple utm pour une carte à grande échelle, il peut redevenir un ovale.)

le code epsg pour web_mercator est 3857, donc si vous projetez vos coordonnées x et y sur web_mercator

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-9796115.18981 5543147.20386)', 3857);
SELECT @g.BufferWithTolerance(5, .01, 1)

Devrait fonctionner (il suffit d'entrer le -9796... 5543... Sont les coordonnées web_mercator pour votre X et Y géographique)

Il semble que vous deviez utiliser les outils spatiaux du serveur SQL (https://gis.stackexchange.com/questions/2723/is-it-possible-to-reproject-spatial-data-using-sql-server ) ou un outil externe pour effectuer la reprojection. Si vous n'avez que quelques points, http://cs2cs.mygeodata.eu/ peut être utile.