当前位置: 首页 > 知识库问答 >
问题:

PostGIS中ST_Azimuth函数的几何与地理差异

井宪
2023-03-14

我想问一下使用PostGIS函数ST_Azimuth的几何和地理有什么区别。

执行以下查询时:

SELECT degrees( ST_Azimuth(ST_MakePoint(21.304116745663165, 38.68607570952619), ST_MakePoint(21.286237118117278,38.71455640443629)) )

我拿到了327.88195438529度。

但是当我将几何转换为地理时,如以下查询:

SELECT degrees( ST_Azimuth(ST_MakePoint(21.304116745663165, 38.68607570952619)::geography, ST_MakePoint(21.286237118117278,38.71455640443629)::geography) )

我得到了333.810802282843度。

地理选角会给出更准确的结果吗?还是会做出不同的计算?

我的几何形状的 SRID=4326。

提前谢谢你。

共有1个答案

丰辰沛
2023-03-14

在我看来,好像地理学给你的是WGS84地球上的点-点方位(所以近似球面),而几何学给你的是平面上的点-点方位。

所以,是的,进行了不同的计算。

 类似资料:
  • 我正在尝试查询一组多边形(在运行时传入)中的任何一个是否与存储在数据库中“enclosing_polygons”字段中的一组多边形相交,这是一个 MultiPolygonField。 下面是查询的示例: 这个查询可以很好地处理硬编码的值,但是当我试图参数化它时,Postgres似乎不能识别?当我试图填充多边形点时,将它们作为参数。 当我设置前两个参数(针对field1和field2)时,这些JDB

  • hibernate 5.1 spatial的文档尚未发布(AFAIK),我正在尝试将带有JST几何字段的实体持久化到PostgreSQL 9.5 Postgis 2.2,但没有任何运气。 我也注意到没有组织。冬眠hibernate-core-5.1中的空间包。0.我尝试了以下注释的变体: 当列定义设置为“点”时,我得到“列”the_geom“是点的类型,但表达式是由茶的类型”。在Hibernate

  • 以下是标签位置定义 这里是“点”变量定义

  • 我有几个使用Spring Data JPA的实体类。(这些实体类位于安装了postgis的postgres db中,并包含几何字段。) 然而,当我切换到r2dbc时,它不起作用。任何提示都将不胜感激。 错误原因:java.lang.IllegalStateException:未找到类org.locationtech.jts.geom.Geometry的必需标识符属性!

  • POSTGIS=“2.5.4” [扩展] PGSQL=“120” GEOS=“3.8.1-CAPI-1.13.3” PROJ=“Rel. 6.3.2, May 1st, 2020” GDAL=“GDAL 3.0.4, 2020/01/28 发布” LIBXML=“2.9.7” LIBJSON=“0.13.1” LIBPROTOBUF=“1.3.0” RASTER Java Postgis Depe

  • 箭头函数: 正规函数 这两个结果应该是相同的,但是看起来像上面定义的arrowFunc考虑第一个arg列表,而normalFunc考虑第二组arg列表。