在mysql中更改srid

时间:2010-08-12 00:48:40

标签: mysql geoserver

是否可以更改几何类型列的srid?我只想从原始latlon数据创建几何类型数据的视图,并在geoserver中使用它。然而,在使用pointfromtext函数之后,我生成的数据类型是几何而不是点,并且地理服务器会将其视为字节数组的特征类型,不能在地理服务器中使用。但是如果我直接在mysql中使用'point'函数,我可以得到确切的点类型但是srid不正确。

所以我的问题是我可以为几何类型的数据设置srid吗?

4 个答案:

答案 0 :(得分:3)

这是在MySQL中实现它的一种方式:

securityContext:
  fsGroup: <GROUPID OF SONAR>

其中SRID应为新的SRID代码(例如,WGS84为4326)。请记住,这只会更改SRID代码,而不会更改存储在形状中的实际坐标。

答案 1 :(得分:1)

实际上要在SQL Server 2008中执行您想要的操作,我必须执行以下操作(更改EPGS中的所有数据:4326):

update TestGeom set geom = geometry::STGeomFromText(geom.STAsText(), 4326)

我不知道在MySQL中你是否可以做同样的事情。否则,您可以使用类似的内容重建表:

update TestGeom 
set geom = geometry::STGeomFromText('POINT ('+ REPLACE(CONVERT(nvarchar, TestGeom.Lon), ',','.')+' '+REPLACE(CONVERT(nvarchar, TestGeom.Lat), ',','.')+' )', 4326)

我希望它可以帮到你。

答案 2 :(得分:0)

在MySQL上订购SRID:

UPDATE YourTable, (SELECT @rownum := 0) Australopithecus
SET YourField = GeomFromText(AsText(YourField), (@rownum := @rownum + 1))

答案 3 :(得分:0)

我能够使用以下技术在MySQL 5.7中执行此操作:

update location_polygons
set multipoly = ST_GeomFromGeoJSON(ST_AsGeoJSON(multipoly), 2, 0)
where SRID(multipoly) <> 0

基于此文档网址:https://dev.mysql.com/doc/refman/5.7/en/spatial-geojson-functions.html

相关问题