[Spanish] Triggers en PostGIS
Mikel
m.ayesta at gislan.com
Tue Feb 24 06:19:31 PST 2015
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 <m.ayesta en gislan.com
> <mailto:m.ayesta en gislan.com>> 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 <m.ayesta en gislan.com
>> <mailto:m.ayesta en gislan.com>> 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 <m.ayesta en gislan.com
>>> <mailto:m.ayesta en gislan.com>> escribió:
>>>
>>> Hola a tod en 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
>>> m.ayesta en gislan.com <mailto:m.ayesta en gislan.com>
>>> 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
------------ pr?xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/spanish/attachments/20150224/4d7bdc63/attachment-0001.html>
------------ pr?xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 38723 bytes
Desc: no disponible
URL: <http://lists.osgeo.org/pipermail/spanish/attachments/20150224/4d7bdc63/attachment-0002.jpe>
------------ pr?xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 34450 bytes
Desc: no disponible
URL: <http://lists.osgeo.org/pipermail/spanish/attachments/20150224/4d7bdc63/attachment-0003.jpe>
More information about the Spanish
mailing list