Я пытаюсь создать круг в SQL Server на основе средней точки и радиуса.
Это кажется близким как решение, но оно создает овал или эллипс по кругу. Есть ли другой способ создать круг?
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326);
select @g.BufferWithTolerance(5, .01, 1)
В настоящее время я использую SQL Server 2008.
Этот код также демонстрирует проблему. Пространственные результаты выглядят как круг, но когда я рисую круг на картах Google, он овальный. Кроме того, когда я использую STContains
, чтобы увидеть, какие точки находятся в круге, он определенно следует за овальным контуром.
IF EXISTS (SELECT * FROM [tempdb].[sys].[objects] WHERE [name] = N'##circle')
DROP TABLE ##circle;
CREATE TABLE ##circle
(
[Polygon] [geometry] NOT NULL
)
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326);
insert into ##circle (Polygon)
values (@g.BufferWithTolerance(.5,.01,1))
select Polygon from ##circle