Cannot find SRID (9479) in spatial_ref_sys
时间: 2024-02-13 16:01:40 浏览: 25
这个错误通常出现在使用 PostGIS 进行空间数据处理时,表示你使用了一个不存在的 SRID(Spatial Reference Identifier)。
解决方法是先查询一下你的数据库中是否有这个 SRID 的定义,可以使用以下 SQL 语句进行查询:
```
SELECT * FROM spatial_ref_sys WHERE srid = 9479;
```
如果查询结果为空,则表示你的数据库中确实没有这个 SRID 的定义,需要手动添加。可以在网上搜索该 SRID 对应的空间参考系统的定义,并使用以下 SQL 语句进行添加:
```
INSERT into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext) values (9479, 'EPSG', 9479, '+proj=longlat +a=3396190 +b=3376200 +no_defs ', 'GEOGCS["Mars 2000",DATUM["D_Mars_2000",SPHEROID["Mars_2000_IAU_IAG",3396190.0,169.8944472236118]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]');
```
其中,proj4text 和 srtext 分别为该 SRID 对应的 Proj4 和 WKT 字符串。
添加完成后,再次执行你的空间数据处理操作即可。
相关问题
ST_Transform: Input geometry has unknown (0) SRID
这个错误是由于您的几何对象没有指定空间参考系统(SRID)导致的。
在 PostGIS 中,每个几何对象都需要指定一个 SRID,以便在进行空间计算时进行正确的转换和投影。如果您的几何对象没有指定 SRID,PostGIS 就无法确定应该使用哪个坐标系进行计算,从而导致错误。
为了解决这个问题,您可以使用 ST_SetSRID 函数来指定几何对象的 SRID。例如,如果您的几何对象使用的是 GCJ02 坐标系,您可以使用以下语句指定其 SRID 为 4326(WGS84 坐标系):
```
SELECT ST_SetSRID(geom, 4326) FROM reverse_geo_info_tbl;
```
这样就可以为几何对象指定正确的 SRID,然后再使用 ST_Transform 函数进行坐标系转换。
mysqlgeometry srid
MySQL中的Geometry类型是用于存储空间数据的数据类型,它可以存储点、线、多边形等几何对象。SRID(Spatial Reference System Identifier)是用于标识空间参考系统的唯一标识符。SRID定义了坐标系和地理空间数据的度量单位。
在MySQL中,可以使用SRID来指定Geometry对象的坐标系。当创建表时,可以在Geometry字段上使用SRID来指定空间参考系统。例如,引用中的代码创建了一个名为t_geo_test的表,其中包含一个名为SHAPE的Geometry字段。在创建表时,使用了SRID为0,表示使用默认的坐标系。
如果要为Geometry字段创建空间索引,可以使用CREATE SPATIAL INDEX语句,如引用所示。将为SHAPE字段创建一个名为i_shape的空间索引,以提高空间查询的性能。
总结起来,MySQL中的Geometry类型可以存储空间数据,并使用SRID来指定坐标系。通过创建空间索引,可以提高空间查询的效率。