sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server Circle

Ditt problem är att du ritar en cirkel i geografiska koordinater. Google Maps använder webbmercatorprojektion https://en.wikipedia.org/wiki/Web_Mercator , så att din cirkel blir oval. Om du vill göra något som ser ut som en cirkel i Google Maps måste du göra det i en datamängd med webbmercatorprojektionen. (Jag säger medvetet "ser ut som en cirkel" eftersom om du projicerar den till ett annat system, t.ex. utm för en storskalig karta, kan den sluta som en oval igen.)

epsg-koden för web_mercator är 3857, så om du projicerar dina x- och y-koordinater till web_mercator

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

Bör fungera (skriv bara in -9796... 5543... Är web_mercator-koordinaterna för ditt geografiska X och Y)

Det verkar som om du behöver använda SQL-servers spatial-verktyg (https://gis.stackexchange.com/questions/2723/is-it-possible-to-reproject-spatial-data-using-sql-server ) eller ett externt verktyg för att göra omprojektionen. Om du bara har några poäng, http://cs2cs.mygeodata.eu/ kan vara användbart.




  1. Datumskillnad i MySQL för att beräkna ålder

  2. Postgres:Definierar den längsta streaken (i dagar) per utvecklare

  3. Ta bort en rad med en självrefererande främmande nyckel

  4. MySQL my.cnf-fil - Hittade alternativ utan föregående grupp