Hola Luis,
Gracias! Funciona perfectamente.
Mikel
2015/02/24 14:01(e)an, Luis Franco Vázquez igorleak idatzi zuen:
Pues es muy simple. Suponiendo que tus nuevos campos x e y se llaman
x_25830 e y_25830 (adáptalos a tu gusto), solo tienes que añadir dos
líneas y reemplazar la función ejecutando lo que sigue:
CREATE OR REPLACE FUNCTION errepide_intz()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
NEW.geom:=ST_transform(ST_SetSRID(ST_MakePoint(NEW.lon,NEW.lat),4326),25830);
NEW.x_25830 := ST_X(NEW.geom);
NEW.y_25830 := ST_Y(NEW.geom);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Prueba y cuentas. Deberías echarle un vistazo al manual de postgresql.
Si quieres actualizar los registros que ya tienes haces:
UPDATE tu_tabla SET x_25830 = ST_X(geom), y_25830 = ST_Y(geom);
Muy simple, la verdad.
El 24 de febrero de 2015, 13:47, Mikel <[email protected]
<mailto:[email protected]>> escribió:
Hola Luis,
Aquí te pego la función.
CREATE OR REPLACE FUNCTION errepide_intz()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
NEW.geom:=ST_transform(ST_SetSRID(ST_MakePoint(NEW.lon,NEW.lat),4326),25830);
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION errepide_intz()
OWNER TO postgres;
Gracias de antemano,
Mikel
2015/02/24 13:44(e)an, Luis Franco Vázquez igorleak idatzi zuen:
Vale. Ahora lo he entendido.
Si me pegas aquí la función disparadora que ya tienes te digo
como hacerlo.
El 24 de febrero de 2015, 13:19, Mikel <[email protected]
<mailto:[email protected]>> escribió:
Hola Luis,
El disparador lo que hace es crear el punto en el sistema de
referencia 25830 partiendo de las coordenadas geográficas que
introduzco en el sistema 4326. Lo que necesito es que me
rellene los campos X e Y en el sistema 25830 de manera
automática.
He intentando poner por defecto en el campo X el valor ST_X
(geom) pero me da error...
Gracias.
2015/02/24 12:29(e)an, Luis Franco Vázquez igorleak idatzi zuen:
Disculpa, no te he entendido. ¿Ya tienes un disparador que
crea el punto y quieres obtener las coordenadas que tú mismo
estás introduciendo?. Tengo que haberlo entendido muy mal.
¿O es que estás introduciendo coordenadas en un sistema de
referencia distinto al 25830 (por ejemplo epsg 4326) y lo
que hace tu disparador es rellenar un atributo de tipo punto
con srid 25830 a partir de un par x, y en otro sistema de
referencias?. Si me das más datos puedo concretar algo.
En general: postgis no tiene disparadores. Quien los tiene
es postgresql. Postgis es una extensión espacial de
postgresql, por lo tanto debes consultar la documentación de
postgresql.
Y sobre como obtener coordenadas x e y, mira
http://postgis.net/docs/manual-2.1/ST_X.html y
http://postgis.net/docs/manual-2.1/ST_Y.html
El 24 de febrero de 2015, 11:56, Mikel <[email protected]
<mailto:[email protected]>> escribió:
Hola a tod@s,
Tengo una duda con PostGIS. ¿Hay alguna manera de que se
rellenen automáticamente dos campos de la tabla con las
coordenadas del elemento introducido?
Me explico. Tengo una tabla en la que introduzco los
puntos con coordenadas geográficas y mediante un
disparador, me situa el punto en las coordenadas
introducidas. El sistema de referencia es EPSG: 25830,
por lo que en el disparador realizo la transformación de
coordenadas. La cuestión es que necesito que se me
rellenen los campos X e Y de forma automática. ¿Hay
algún valor por defecto que se puede introducir (como en
el caso de la fecha, now()), o por el contrario hay que
programar algún disparador? y si es la segunda opción,
¿cómo?
Gracias de antemano.
Un cordial saludo,
<http://www.gislan.com> <http://www.gislan.com/node/107>
*Mikel Ayestaran Olano*
GISLAN GEOGRAPHIC APPLICATIONS S.L
[email protected] <mailto:[email protected]>
Tel.: 0034 943 304 255
www.gislan.com <http://www.gislan.com>
*Lege oharra:* Mezu elektroniko honetan, eta, hala
badagokio, bere fitxategi erantsietan, hartzaileari
soilik zuzendutako isilpeko informazioa dago. Debekatuta
dago informazio hori zabaldu, kopiatu eta beste
pertsonen artean banatzea, Gaindegiaren baimen idatzirik
gabe. Akatsen batengatik mezu hau jaso baduzu,
jakinarazi mesedez, mezua igorlearen helbidera
birbidaliz. DBLOn ezarritakoaren arabera, Gaindegiak
datu pertsonalen isilpeko tratamendua bermatzeko
beharrezko neurriak hartzen ditu. Halaber, zure datuak
fitxategi batean daudela jakinarazi nahi dizugu, zure
harremana mantentzeko. Eskubidea daukazu datuok
begiratu, zuzendu, ezabatu eta aurka egiteko, helbide
honetan: Martin Ugalde Kultur Parkea, 20140 Andoain.
*Nota:* "Este correo electrónico y, en su caso,
cualquier fichero anexo al mismo, contiene información
de carácter confidencial exclusivamente dirigida a su
destinatario. Queda prohibida su divulgación, copia o
distribución a terceros sin la previa autorización
escrita de Gaindegia. En el caso de haber recibido este
correo electrónico por error, se ruega notifíquese
inmediatamente esta circunstancia mediante reenvío a la
dirección electrónica del remitente. De conformidad con
lo establecido en la LOPD Gaindegia garantiza la
adopción de las medidas necesarias para asegurar el
tratamiento confidencial de los datos de carácter
personal. Así mismo le informamos de inclusión de sus
datos en un fichero con la finalidad de mantener su
relación con Gaindegia y de la posibilidad de ejercer
los derechos de acceso, rectificación, cancelación y
oposición en la siguiente dirección: Martin Ugalde
Kultur Parkea, 20140 Andoain.”
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes