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
