相关疑难解决方法(0)

PostGIS 中的缓冲区(圆)

我必须扩展正常的 GeoJSON 格式以添加一些不受支持的多边形,如 Circle。

{
 "type": "Circle",
 "radius" : 0.001,
 "coordinates": [
        5.417075157165527,
       43.29129488122568
 ]
}
Run Code Online (Sandbox Code Playgroud)

这是一个例子。坐标标记圆心,半径表示半径(以米为单位)。

在 PostGis Docs 和 Stackoverflow 上搜索,要绘制一个圆,您必须使用 ST_BUFFER。

所以我使用:

ST_Buffer(ST_GeomFromGeoJSON(<center of circle>),0.001, 'quad_segs=16')
Run Code Online (Sandbox Code Playgroud)

你知道吗,这只能在 0,0(非洲附近)画一个圆。其他位置添加了改变椭圆形状的扭曲。

我用的是 4326。

我试图搜索(即使在这里),但我无法找到一个解决方案来简单地绘制一个圆,避免投影或转换它。

这里唯一的帖子是:如何在 postgis 中以米为单位创建一个圆圈? 但它很旧,该解决方案不起作用。

postgresql postgis

3
推荐指数
1
解决办法
2246
查看次数

让所有建筑物距离指定坐标5英里

我有数据库表Building与这些列:name,lat,lng

如何Buildings在指定坐标的5英里范围内获取全部范围,例如:

-84.38653999999998

33.72024

我的尝试,但它不起作用:

SELECT ST_CONTAINS(
  SELECT ST_BUFFER(ST_Point(-84.38653999999998,33.72024), 5), 
  SELECT ST_POINT(lat,lng) FROM "my_db"."Building" LIMIT 50
);
Run Code Online (Sandbox Code Playgroud)

https://docs.aws.amazon.com/athena/latest/ug/geospatial-functions-list.html

sql gis postgis presto amazon-athena

2
推荐指数
2
解决办法
589
查看次数

标签 统计

postgis ×2

amazon-athena ×1

gis ×1

postgresql ×1

presto ×1

sql ×1