轻松将 GEOMETRY 点转换为 latlng

Easy conversion of GEOMETRY point to latlng

我想使用从 postgis table 中提取的几何点和半径值。它看起来像这样:

CREATE TABLE waypoint (
  name          VARCHAR(30),
  location      GEOMETRY(Point, 3857),
  radius        INTEGER,
);

-- Update SRID to WGS84 (World Geodetic System 1984) - Standard for most calcluations worldwide
SELECT UpdateGEometrySRID('waypoint', 'location', 3857);

INSERT INTO
    waypoint (name, location, radius)
SELECT
    'Waypoiint 1', 'SRID=3857; POINT(-27.0 153.0)', 50;

因此,一旦我在 javascript 中获得 locationradius 值,我希望用它在地图上显示一个圆圈。

       WPcircle = L.circleMarker(location, radius).addTo(mymap)

但这会出错,因为位置格式无效。它是 GEOMETRY 类型而不是 latlng。

我想在 javascript 中执行相当于 ST_AsText(location) 的操作。可以吗?

是否有一种简单的(或任何一种?)方法可以将其转换为 javascript?

我认为在 Javascript 的 geometry 上尝试处理 WKB 或 WKT 格式是个坏主意。

使用 ST_X and ST_Y 函数获取 SQL 查询中某个点的坐标。

如果您想在地图上绘制缓冲区(圆圈),您应该使用 ST_Buffer。这应该 return 一个具有给定几何形状和半径的圆的几何形状,这样您就不需要在客户端中计算它:

SELECT ST_Buffer(location,radius) FROM waypoint;

进一步阅读: