Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-Kreis

Ihr Problem ist, dass Sie einen Kreis in geografischen Koordinaten zeichnen. Google Maps verwendet die Web-Mercator-Projektion https://en.wikipedia.org/wiki/Web_Mercator , sodass dein Kreis ein Oval wird. Wenn Sie etwas erstellen möchten, das in Google Maps wie ein Kreis aussieht, müssen Sie es in einem Datensatz mit der Web-Mercator-Projektion erstellen. (Ich sage absichtlich "sieht aus wie ein Kreis", denn wenn Sie es auf ein anderes System projizieren, z. B. utm für eine Karte mit großem Maßstab, kann es wieder als Oval enden.)

Der EPSG-Code für web_mercator ist 3857, wenn Sie also Ihre x- und y-Koordinaten auf web_mercator projizieren

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

Sollte funktionieren (geben Sie einfach -9796... 5543... ein. Sind die web_mercator-Koordinaten für Ihre geografischen X und Y)

Es scheint, als müssten Sie SQL Server Spatial Tools verwenden (https://gis.stackexchange.com/questions/2723/is-it-possible-to-reproject-spatial-data-using-sql-server ) oder ein externes Tool, um die Neuprojektion durchzuführen. Wenn Sie nur wenige Punkte haben, http://cs2cs.mygeodata.eu/ kann nützlich sein.