sql >> Databáze >  >> RDS >> Sqlserver

SQL Server Circle

Váš problém je v tom, že nakreslíte kruh v zeměpisných souřadnicích. Mapy Google používají webovou projekci mercator https://en.wikipedia.org/wiki/Web_Mercator , takže váš kruh bude ovál. Pokud chcete vytvořit něco, co v Mapách Google vypadá jako kruh, musíte to udělat v datové sadě s projekcí web mercator. (Záměrně říkám „vypadá jako kruh“, protože pokud jej promítnete do jiného systému, např. utm pro mapu velkého měřítka, může skončit znovu jako ovál.)

kód epsg pro web_mercator je 3857, takže pokud promítnete souřadnice x a y do web_mercator

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

Mělo by to fungovat (stačí zadat -9796... 5543... Jsou souřadnice web_mercator pro vaše zeměpisné X a Y)

Zdá se, že potřebujete použít prostorové nástroje SQL serveru (https://gis.stackexchange.com/questions/2723/is-it-possible-to-reproject-spatial-data-using-sql-server ) nebo externí nástroj pro provedení reprojekce. Pokud máte jen pár bodů, http://cs2cs.mygeodata.eu/ může být užitečné.




  1. SQL Server Like Query nerozlišuje velká a malá písmena

  2. Kolik řádků bude uzamčeno pomocí SELECT ... ORDER BY xxx LIMIT 1 PRO AKTUALIZACI?

  3. Jak spustit sadu SQL dotazů ze souboru v PHP?

  4. Jak zkrátit tabulku pomocí Doctrine?