当前位置: 首页 > 面试题库 >

几何列的SRID 0是多少?

裴英锐
2023-03-14
问题内容

因此,我向空间表中添加了几何列,并使用了某些msdn引用,最终将SRID指定为0,如下所示:

  update dbo.[geopoint] set GeomPoint = geometry::Point([Longitude], [Latitude], 0)

但是,我认为这是一个错误,但是在必须更新列之前,0实际是默认值=
4326吗?只要我在查询上将SRID指定为0,该查询就可以使用,但是与我所拥有的地理位置字段相比,我得到的结果很奇怪…
sys.spatial_reference_systems中不存在SRID 0,并且我无法搜集有关的任何信息。任何帮助,将不胜感激。


问题答案:

从技术上讲,SRID为0并不存在,它仅表示没有SRID,即,如果您忘记设置它,则为默认值。因此,从技术上讲,只要两组几何的SRID为0,您仍然可以执行距离,交集和所有其他查询。如果您的一个几何字段的SRID为0,而另一组的SRID实际上存在,您很可能会得到非常奇怪的结果。我记得在这种情况下,即使没有从空间查询中获得任何结果时,我也挠挠过头,SQL
Server也没有抱怨,只有0个结果(因为值得这样做的Postgis实际上会失败,并发出关于不匹配的SRID的警告)。

在我看来,您应该始终明确设置几何(或地理,自然总是4326)的SRID,因为它不仅可以防止出现奇怪的查询结果,而且还意味着您可以从一个坐标系转换为另一个坐标系。能够即时从经纬度(4326)转换为球形墨卡托(3857),如米制的Google
Maps / Bing或其他局部坐标系(例如27700,British National Grid)以米为单位,可能非常有用。据我所知,SQL
Server不支持从一种SRID到另一种SRID的转换,但是由于空间类型本质上是CLR类型,因此如果需要,可以使用.NET库

如果您决定更改几何形状,则可以执行以下操作:

UPDATE your_table SET newGeom = geometry::STGeomFromWKB(oldGeom.STAsBinary(), SRID);

这将创建一个新列或将其放置在适当的位置:

UPDATE geom SET geom.STSrid=4326;

其中4326只是一个示例SRID。

尽管与sys.spatial_reference_systems中的信息基本相同,但http://spatialreference.org/上有关于SRID的很好的参考。



 类似资料:
  • 因此,我将几何列添加到空间表中,并使用一些msdn参考资料,最终将SRID指定为0,如下所示: 但是,我认为这是一个错误,但是在必须更新列之前,0实际上是默认值= 4326吗?只要我在查询中将SRID指定为0,查询就可以工作,但是与我拥有的地理字段相比,我得到了奇怪的结果...SRID 0在sys.spatial_reference_systems中不存在,我无法挖掘出有关它的任何信息。任何帮助将

  • 本文向大家介绍列举几种多列等高布局的方法相关面试题,主要包含被问及列举几种多列等高布局的方法时的应答技巧和注意事项,需要的朋友参考一下 1, 使用table布局 `.row { display: table; } .row > * { display: table-cell; }.row { display: flex; flex-wrap: wrap; } .row > * { display:

  • 多面体在三维空间中具有一些平面的立体图形。这个类将一个顶点数组投射到一个球面上,之后将它们细分为所需的细节级别。 这个类由DodecahedronGeometry、IcosahedronGeometry、OctahedronGeometry和TetrahedronGeometry 所使用,以生成它们各自的几何结构。 代码示例 const verticesOfCube = [ -1,-1,-

  • 利用WebGL重现三维场景的时候,往往不仅仅有一个几何体,比如像机器人是由多个子零件构成的装配体,可能同一个零件出现在不同的位置,可能两个零件的形状一样颜色不一样,也有颜色形状完全不同的零件。 阅读下面的讲解内容,一方面可以学习如何利用WebGL创建多几何体场景,同时借助实际的问题进一步加深对渲染管线这个硬件黑箱的认知,只有更好的认知渲染管线才能更好的应用与它紧密关联的API接口, 学习精力是有限

  • 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

  • 我正在使用使用Spring3.1和Hibernate4.2的应用程序。对于空间功能,我们计划将hibernate spatial与postgis结合使用。但hibernate spatial使用bytea类型而不是几何体创建列。我无法找出这一切的根本原因。我已经花了几天时间解决问题,但没有成功。 hibernate-spatial-4.0。罐子是用的。 我正在使用下面的hibernate。属性文件