sql >> Base de Datos >  >> RDS >> Sqlserver

Círculo de SQL Server

Tu problema es que dibujas un círculo en coordenadas geográficas. Google Maps utiliza la proyección web Mercator https://en.wikipedia.org/wiki/Web_Mercator , por lo que su círculo va a ser un óvalo. Si desea hacer algo que parezca un círculo en Google Maps, debe hacerlo en un conjunto de datos con la proyección web Mercator. (Estoy diciendo deliberadamente "parece un círculo", ya que si lo proyecta a otro sistema, por ejemplo, utm para un mapa a gran escala, puede terminar como un óvalo nuevamente).

el código epsg para web_mercator es 3857, por lo que si proyecta sus coordenadas x e y en web_mercator

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

Debería funcionar (simplemente ingrese -9796... 5543... Son las coordenadas web_mercator para su ubicación geográfica X e Y)

Parece que necesita usar las herramientas espaciales del servidor SQL (https://gis.stackexchange.com/questions/2723/es-posible-reproyectar-datos-espaciales-usando-sql-server ) o una herramienta externa para hacer la reproyección. Si solo tiene unos pocos puntos, http://cs2cs.mygeodata.eu/ puede ser útil.