作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前在客户端使用 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/
我是一名优秀的程序员,十分优秀!