No sé si ha sonado muy borde mi respuesta pero no era la intención. Era un recordatorio para evitar malas costumbres. Pensaba que mi " ;) " final suavizaba el tono pero me han dicho por aquí atrás que había sonado como un gruñón.
El 24 de febrero de 2015, 18:01, Luis Franco Vázquez <[email protected]> escribió: > No sé qué estás empleando para insertar desde QGIS pero lo que te está > diciendo es que en la geometría no tienes un punto. ¿Qué proceso estás > siguiendo?. > Y de paso te voy a dar un ligero tirón de orejas: en las listas no debes > escribir correos como este último. No los dirijas a mi ni a nadie salvo > para seguir un hilo. Si te surge una duda o problema exponlo a todos. En mi > caso colaboro siempre que puedo pero el asesoramiento personalizado lo > cobro porque profesionalmente me dedico a esto. Y cuando se trate de un > problema, por cortesía asegúrate de haber buscado en internet o donde sea > la respuesta antes de preguntar. ;) > > El 24 de febrero de 2015, 16:58, Mikel <[email protected]> escribió: > > Hola Luis, >> >> Tengo otro problema con otra tabla. En este caso, lo que quiero hacer es >> que al introducir manualmente el punto desde QGIS, me rellene las >> coordenadas x, y, longitud y latitud. La tabla está en srid 25830 y al >> introducir el punto en QGIS, me da el siguinete error: Argument to X() must >> be a point. >> >> Gracias de antemano. >> >> El código es el siguiente: >> >> CREATE OR REPLACE FUNCTION public.errepide_intz_koord() >> RETURNS trigger AS >> $BODY$ >> DECLARE >> >> BEGIN >> >> NEW.x:=ST_X(NEW.geom); >> NEW.y:=ST_Y(NEW.geom); >> NEW.lon:=ST_X(ST_Transform(NEW.geom, 4326)); >> NEW.lat:=ST_Y(ST_Transform(NEW.geom, 4326)); >> >> RETURN NEW; >> END; >> $BODY$ >> LANGUAGE plpgsql VOLATILE >> COST 100; >> ALTER FUNCTION public.errepide_intz_koord() >> OWNER TO postgres; >> >> >> >> >> 2015/02/24 15:19(e)an, Mikel igorleak idatzi zuen: >> >> 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]> 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]> 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]> 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] >>>>> Tel.: 0034 943 304 255 >>>>> 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 >>>> listhttp://lists.osgeo.org/mailman/listinfo/spanishhttp://es.osgeo.orghttp://twitter.com/osgeoes >>>> >>>> >>>> >>>> _______________________________________________ >>>> Spanish mailing list >>>> http://lists.osgeo.org/mailman/listinfo/spanish >>>> http://es.osgeo.org >>>> http://twitter.com/osgeoes >>>> >>> >>> >>> >>> _______________________________________________ >>> Spanish mailing >>> listhttp://lists.osgeo.org/mailman/listinfo/spanishhttp://es.osgeo.orghttp://twitter.com/osgeoes >>> >>> >>> >>> _______________________________________________ >>> Spanish mailing list >>> http://lists.osgeo.org/mailman/listinfo/spanish >>> http://es.osgeo.org >>> http://twitter.com/osgeoes >>> >> >> >> >> _______________________________________________ >> Spanish mailing >> listhttp://lists.osgeo.org/mailman/listinfo/spanishhttp://es.osgeo.orghttp://twitter.com/osgeoes >> >> >> >> >> _______________________________________________ >> Spanish mailing >> listhttp://lists.osgeo.org/mailman/listinfo/spanishhttp://es.osgeo.orghttp://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
