如何在postgis中创建一个以米为单位的圆圈?

Mik*_*asi 6 geometry postgis srid

我想问一下如何创建一个圆圈radius=4km.我尝试了这个ST_Buffer功能,但它创建了一个更大的圆圈.(我通过将其多边形插入到新的kml文件中来查看创建的圆圈.)

这就是我想要的.

INSERT INTO camera(geom_circle) VALUES(geometry(ST_Buffer(georgaphy(ST_GeomFromText('POINT(21.304116745663165 38.68607570952619)')), 4000)))
Run Code Online (Sandbox Code Playgroud)

圆的中心是一个lon lat点,但我不知道它,SRID因为我从kml文件中导入了它.我是否需要SRID改变几何形状等?

Mik*_*e T 19

KML文件始终为纬度/经度,并使用SRID = 4326.如果您使用,则隐含此SRID geography.地理位置是一种很好的方法,可以在纬度/经度数据上混合使用4公里的度量标准...非常棒的你试过这个!

尝试使用此语句来修复强制转换,并使用参数化的点构造函数:

SELECT ST_Buffer(ST_MakePoint(21.304116745663165, 38.68607570952619)::geography, 4000);
Run Code Online (Sandbox Code Playgroud)

如果您需要将其::geometry强制转换为几何体,请在最后添加一个强制转换.