gpt4 book ai didi

javascript - 如何在 JavaScript 中读取 PostGIS 点?

转载 作者:行者123 更新时间:2023-11-30 00:01:26 26 4
gpt4 key购买 nike

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

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

0101000020E6100000DE02098A1FF33F40BADA8AFD65F74140

最佳答案

您还没有发布您的实际查询,但是如果您将 SELECT 语句中引用的几何用 ST_AsText() 包裹起来然后它将以一种名为 Well Known Text 的人类可读格式返回几何图形。 .例如

SELECT my_id, ST_AsText(my_geom) FROM my_table;
-- returns POINT(31.9497 35.9328) using the geometry from your question.

这是相当普通的解析练习。或者,如果您只想要原始的经度/纬度(或东距/北距),则可以像这样构造您的查询:

SELECT ST_X(my_geom), ST_Y(my_geom) FROM my_table;
-- returns: 31.9497, 35.9328 using the geometry from your question

请注意,如有必要,您还可以将几何体转换为您需要使用的坐标系。例如,如果几何以传统的经/纬度格式(EPSG code 4326)存储在数据库中,并且您需要在在线 map 中通常使用的伪墨卡托投影(EPSG code 3857)中检索它,那么您需要执行此操作:

-- 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

关于javascript - 如何在 JavaScript 中读取 PostGIS 点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com