修改mysql中的srid

发布于 2024-09-14 15:20:29 字数 240 浏览 7 评论 0原文

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

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

Is it possible to change the srid of a column of geometry type? I just want to create a view of geometry type data from the raw latlon data and use it in the geoserver. However after using the pointfromtext function, the type of data I generate is geometry rather than point and geoserver would treat it as an feature typ of byte array which can not be used in the geoserver. However if I use the 'point' function directly in the mysql, I can get the exact type of point however the srid is not right.

So my question is can I set the srid for the geometry type of data?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

星星的轨迹 2024-09-21 15:20:29

这是在 MySQL 中执行此操作的一种方法:

   UPDATE table SET shape = ST_GeomFromText(ST_AsText(shape), SRID);

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

This is one way of doing it in MySQL:

   UPDATE table SET shape = ST_GeomFromText(ST_AsText(shape), SRID);

Where SRID should be the new SRID code (for example 4326 for WGS84). Keep in mind that this only changed the SRID code and not the actual coordinates stored in the shape.

尐籹人 2024-09-21 15:20:29

实际上,为了在 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)

我希望它可以帮助您。

Actually to do what you want in SQL Server 2008, I had to do the following (change all the data in EPGS:4326):

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

I don't know if in MySQL you can do the same kind of thing. Otherwise, you can rebuild your table with something similar to this:

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

I hope it can help you.

雨后咖啡店 2024-09-21 15:20:29

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

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

基于此文档 URL:

I was able to do this in MySQL 5.7 using the following technique:

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

Based on this documentation URL: https://dev.mysql.com/doc/refman/5.7/en/spatial-geojson-functions.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文