2010-08-12 5 views
2

Est-il possible de changer le srid d'une colonne de type géométrie? Je veux juste créer une vue des données de type de géométrie à partir des données latlon brutes et l'utiliser dans le géoserveur. Cependant, après avoir utilisé la fonction pointfromtext, le type de données que je génère est une géométrie plutôt qu'un point et geoserver le traiterait comme un type de tableau d'octets qui ne peut pas être utilisé dans le geoserver. Cependant si j'utilise la fonction 'point' directement dans le mysql, je peux obtenir le type exact de point mais le srid n'est pas correct. Donc, ma question est: puis-je définir le srid pour le type de données géométriques?Modifier srid dans mysql

+0

Quand vous dites changer un SRID, voulez-vous dire reprojeter ou changer la représentation interne. Les SRID identifient les coordonnées dans les systèmes. Vous ne pouvez pas passer d'un SRID à un autre sans conversion sur les coordonnées. Vous pouvez changer le format interne qui risque de tout gâcher pour vous. –

Répondre

1

En fait, à faire ce que vous voulez dans SQL Server 2008, je devais faire ce qui suit (changer toutes les données EPGS: 4326):

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

Je ne sais pas si MySQL vous pouvez faire le même genre de chose. Sinon, vous pouvez reconstruire votre table avec quelque chose de semblable à ceci:

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

J'espère que cela peut vous aider.

+0

Er .. quel est le problème avec UPDATE TestGeom SET geom.STSrid = 4326; ? –

+0

Je n'ai pas essayé cette solution. Cela peut être mieux. – Nordes

0

Commande SRID sur MySQL:

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