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

Responder a