如何在JavaScript中读取PostGIS点?

如何在JavaScript中读取PostGIS点?,javascript,postgis,Javascript,Postgis,我目前正在客户端使用JavaScript获取PostGIS点,有没有办法使用JavaScript将这些点转换为普通的x,y坐标 以下是我目前获得积分的方式: 0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140 您尚未发布实际的查询,但如果将SELECT语句中引用的几何体包装起来,则它将以称为的人类可读格式返回几何体。 e、 g 这是相当普通的解析练习。或者,如果您只需要原始lon/lat(或东距/北距),则按照以下方式构造查询: SELECT

我目前正在客户端使用JavaScript获取PostGIS点,有没有办法使用JavaScript将这些点转换为普通的x,y坐标

以下是我目前获得积分的方式:

0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140

您尚未发布实际的查询,但如果将
SELECT
语句中引用的几何体包装起来,则它将以称为的人类可读格式返回几何体。 e、 g

这是相当普通的解析练习。或者,如果您只需要原始lon/lat(或东距/北距),则按照以下方式构造查询:

SELECT ST_X(my_geom), ST_Y(my_geom) FROM my_table;
-- returns: 31.9497, 35.9328 using the geometry from your question
请注意,如有必要,还可以将几何图形转换为需要使用的坐标系。例如,如果几何体以常规lon/lat格式()存储在数据库中,并且您需要在在线地图中通常使用的伪墨卡托投影()中检索几何体,则您需要执行以下操作:

-- note the explicit ::geometry cast
SELECT my_id, ST_AsText(ST_Transform(my_geom::geometry, 3857)) FROM my_table;
为了好玩,您可以在启用PostGIS的Postgres SQL查询窗口中尝试此操作(使用问题中的几何图形):

以WKT格式返回:

SELECT  ST_AsText('0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140');
-- returns: POINT(31.9497 35.9328)
以伪墨卡托返回:

SELECT  ST_AsText(ST_Transform('0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140'::geometry, 3857))
-- returns: POINT(3556624.33499785 4291378.69099916)
返回为X,Y:

SELECT  ST_X('0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140'),
    ST_Y('0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140');
-- returns: 31.9497, 35.9328

这个答案描述了如何处理WKB格式——尽管调整SQL查询以直接获取坐标可能更好。。。
SELECT  ST_X('0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140'),
    ST_Y('0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140');
-- returns: 31.9497, 35.9328