El vie., 8 nov. 2019 a las 9:32, mis carpetas (<mismascarpe...@gmail.com>)
escribió:

>
>
> Buenos días,
> Primero de todo felicitaros por la gran labor de difusión que ejerceis con
> las jornadas que nos ayudan bastante a los profanos en la materia.
> Paso a exponer el problema que nos ocupa tenemos una aplicación bastante
> antigua con una cartografía del 2010 en postgres (contiene unicamente el
> callejero de Valencia)
> , nos han pasado también en el mismo postgres una cartografía actualizada,
> el problema es que en la nueva cartografía la geometría esta especificada
> en 3D.
> Sería posible pasarla de 3d a 2d para poder aprovechar la nueva
> cartografía?
> Os comento más detalles sobre la estructura de la aplicación:
> Se trata de actualizar nombres de calles, tramos y portales
>
> La estructura de la tabla tramo antigua es:
> gid integer
> objectid integer
> id_tramo numeric
> id_vial numeric
> par_bajo smallint
> par_alto smallint
> imp_bajo smallint
> imp_alto smallint
> longitud numeric
> shape_leng numeric
> the_geom USER-DEFINED
> source integer
> target integer
> length double precision
> cost double precision
> x1 double precision
> y1 double precision
> x2 double precision
> y2 double precision
> reverse_cost double precision
> dir_travel character varying
>
> La estructura de la tabla tramo nueva es:
> objectid integer
> id_tramo double precision
> id_vial character varying
> tipo_tramo integer
> dtipo_tramo character varying
> ficha character varying
> clase integer
> dclase character varying
> clau character varying
> situacionvertical integer
> dsituacionvertical character varying
> zonasconservacion character varying
> ncarriles integer
> sentido integer
> dsentido character varying
> calzada integer
> dcalzada character varying
> anchoplataforma double precision
> firme integer
> dfirme character varying
> estadoactual integer
> destadoactual character varying
> acceso integer
> dacceso character varying
> grancapacidad smallint
> dgrancapacidad character varying
> tipovehiculo integer
> dtipovehiculo character varying
> altabd timestamp without time zone
> last_edited_date timestamp without time zone
> globalid character varying
> tipo_vial double precision
> dtipo_vial character varying
> codigo_ine character varying
> dgc_via integer
> nombre character varying
> st_length_shape_ double precision
> geom USER-DEFINED
>
>
> He probado con la función
>
> select ST_FORCE2D(geom) from tramo_nuevo where id_vial = '462500000225'
>
> Y los valores del campo geom no acaban de coincidir.
>
> Valor Antiguo
>
> 0105000020E664000001000000010200000002000000288716197C402641EC51B8E6E8AC5041601058B9F54026418A416075E5AC5041
> Nuevos Valores aplicando ST_FORCE2D
>
> 0102000020E664000004000000989999197C402641703D0AE7E8AC5041000000809A402641A4703D0AE8AC5041B81E85EBB8402641E27A142EE7AC5041D0CCCC4CC4402641B81E85DBE6AC5041
>
> 0102000020E664000003000000D0CCCC4CC4402641B81E85DBE6AC50412085EB51D74026411E85EB51E6AC504188EB51B8F540264152B81E75E5AC5041
>
> 0102000020E664000004000000989999197C402641703D0AE7E8AC5041000000809A402641A4703D0AE8AC5041B81E85EBB8402641E27A142EE7AC5041D0CCCC4CC4402641B81E85DBE6AC5041
>
> 0102000020E664000003000000D0CCCC4CC4402641B81E85DBE6AC50412085EB51D74026411E85EB51E6AC504188EB51B8F540264152B81E75E5AC5041
>
>
Hola,
no entiendo muy bien la necesidad de pasar a 2D las geometrias...
parece que vas a tener mas problemas con la estructura de la tabla que
simplemente ese;
pero bueno...
Si se puede pasar a 2D, como dices usando la funcion ST_FORCE2D para
convertir la geometria a 2D, pero el valor en binario (WKB) de la geometria
en 2D (que es lo que has puesto y se muestra por defecto) no puede
coincidir nunca con el de la geometria en 3D. El formato WKB de una
geometria 2D no es el mismo que para una 3D.

Si lo que quieres es echarle un vistazo a las geometrias antes y despues de
convertirlas a 2D para hacerte una idea de si vas a romper algo al
convertirlas, puedes probar con algo como:

select ST_AsText(ST_FORCE2D(geom)), ST_AsText(geom) from tramo_nuevo where
id_vial = '462500000225'

Seguiran sin ser igual los valores que presenta (unos tienen Z y otros no),
pero al estar en texto podras ver si las Xs e Ys son iguales.

Un saludo
Joaquin



> Lo ideal resolver el problema usando las funciones PostGis
> Si necesitáis saber algún detalle más ya me decís.
>
>
> Gracias por anticipado.
> Un cordial saludo
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores@listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelce...@gvsig.com
gvSIG Association
www.gvsig.com
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de 
baja en esta lista, acuda a la siguiente dirección: 
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores

Responder a