Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Círculo do SQL Server


Seu problema é que você desenha um círculo em coordenadas geográficas. O Google Maps está usando a projeção do Web Mercator https://en.wikipedia.org/wiki/Web_Mercator , para que seu círculo seja oval. Se você quiser fazer algo parecido com um círculo no Google Maps, você deve fazê-lo em um conjunto de dados com a projeção do web mercator. (Estou dizendo deliberadamente "parece um círculo", pois se você o projetar para outro sistema, por exemplo, utm para um mapa de grande escala, ele pode acabar como um oval novamente.)

o código epsg para web_mercator é 3857, então se você projetar suas coordenadas xey para web_mercator
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-9796115.18981 5543147.20386)', 3857);
SELECT @g.BufferWithTolerance(5, .01, 1)

Deve funcionar (basta inserir o -9796... 5543... São as coordenadas web_mercator para o seu X e Y geográficos)

Parece que você precisa usar as ferramentas espaciais do SQL Server (https://gis.stackexchange.com/questions/2723/is-it-possible-to-reproject-spatial-data-using-sql-server ) ou uma ferramenta externa para fazer a reprojeção. Se você tiver apenas alguns pontos, http://cs2cs.mygeodata.eu/ pode ser útil.