[Gvsig_desarrolladores] GPS

Juan Lucas Dominguez Rubio jldominguez en prodevelop.es
Lun Jun 1 13:19:13 CEST 2009


Hola, Pedro.

Entiendo que estás programando en gvSIG (no en gvSIG Mobile). Supongo que en tu workspace debe haber un proyecto extJCRS. Si miras sus dependencias encontrarás la manera de proyectar tus coordenadas de EPSG:4326 a EPSG:32628. Podrías ejecutar gvSIG en modo debug y añadir a una vista en EPSG:32628 un shapefile en EPSG:4326 reproyectado al vuelo y mirar por dónde pasa el hilo de ejecución.

También tienes otra opción que es usar el código de gvSIG Mobile, que en este caso es mucho más sencillo. Este método:

public static double[] geo2utm(double lon, double lat, Elipsoide elip, int husoforced);

es justo el que necesitas:

double[] xy = geo2utm(<longitud>, <latitud>, Elipsoide.WGS84, 28);

xy[0] será la X en metros
xy[1] será la Y en metros

(también necesitarás incluir la clase Elipsoide porque necesitas su constante WGS84)

El método geo2utm está en esta clase:

http://subversion.gvsig.org/gvSIG-mobile/pilots/branches/pilot2/libraries/libFMap/src/es/prodevelop/geodetic/utils/conversion/ConversionCoords.java

La clase Elipsoide está aquí:

http://subversion.gvsig.org/gvSIG-mobile/pilots/branches/pilot2/libraries/libFMap/src/es/prodevelop/geodetic/utils/conversion/Elipsoide.java

Saludos,

 
Juan Lucas Domínguez Rubio
---
Prodevelop SL, Valencia (España)
0° 22' 49.62" W, 39° 28' 25.45" N
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es <http://www.prodevelop.es/> 
---

 

		 
		 
________________________________

		De: gvsig_desarrolladores-bounces en runas.cap.gva.es en nombre de Pedro A. Peñalver Yusta
		Enviado el: lun 01/06/2009 12:07
		Para: gvsig_desarrolladores en runas.cap.gva.es
		Asunto: Re: [Gvsig_desarrolladores] GPS
		
		



		Hola, fallo mio lo siento, estaba obteniendo las posiciones de un String
		usando el ejemplo que venia en la libreria libLocation del mobile, ya uso el
		getLatitude y el getLongitude, y ahora me devuelve las que tu comentas con
		signo negativo incluido, ahora el problema es, ¿como transformo esas
		coordenadas a EPSG:32628?
		
		
		Te pego unas lineas de log como me pedias.
		
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'RMC'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:721) - RMC detected:
		$GPRMC,095824.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*67
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key location oldvalue=GPSPosition[lat: 28.469233,
		long:-16.29531233333333] new=GPSPosition[lat: 28.469233,
		long:-16.29531233333333]
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGGA,095825.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2F'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGGA,095825.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2F'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GGA'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:620) - GGA detected:
		$GPGGA,095825.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2F
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGSA,A,1,,,,,,,,,,,,,,,*1E'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGSA,A,1,,,,,,,,,,,,,,,*1E'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GSA'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:672) - GSA detected:
		$GPGSA,A,1,,,,,,,,,,,,,,,*1E
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key ids_satellites oldvalue=[Ljava.lang.Integer;@1f39660
		new=[Ljava.lang.Integer;@1ad4513
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGSV,2,1,08,12,00,270,,04,77,172,,07,51,089,,13,34,036,*76'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGSV,2,1,08,12,00,270,,04,77,172,,07,51,089,,13,34,036,*76'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GSV'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:770) - GSV detected:
		$GPGSV,2,1,08,12,00,270,,04,77,172,,07,51,089,,13,34,036,*76
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGSV,2,2,08,17,08,187,,02,58,309,,08,45,151,,25,40,059,*77'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGSV,2,2,08,17,08,187,,02,58,309,,08,45,151,,25,40,059,*77'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GSV'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:770) - GSV detected:
		$GPGSV,2,2,08,17,08,187,,02,58,309,,08,45,151,,25,40,059,*77
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key satellite_info
		oldvalue=[Lorg.dinopolis.gpstool.gpsinput.SatelliteInfo;@115a3af
		new=[Lorg.dinopolis.gpstool.gpsinput.SatelliteInfo;@921fc7
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPRMC,095825.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*66'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPRMC,095825.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*66'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'RMC'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:721) - RMC detected:
		$GPRMC,095825.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*66
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key location oldvalue=GPSPosition[lat: 28.469233,
		long:-16.29531233333333] new=GPSPosition[lat: 28.469233,
		long:-16.29531233333333]
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGGA,095826.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2C'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGGA,095826.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2C'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GGA'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:620) - GGA detected:
		$GPGGA,095826.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2C
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGSA,A,1,,,,,,,,,,,,,,,*1E'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGSA,A,1,,,,,,,,,,,,,,,*1E'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GSA'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:672) - GSA detected:
		$GPGSA,A,1,,,,,,,,,,,,,,,*1E
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key ids_satellites oldvalue=[Ljava.lang.Integer;@1ad4513
		new=[Ljava.lang.Integer;@1644a50
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGSV,2,1,08,12,00,270,,04,77,172,,07,51,089,,13,34,036,*76'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGSV,2,1,08,12,00,270,,04,77,172,,07,51,089,,13,34,036,*76'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GSV'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:770) - GSV detected:
		$GPGSV,2,1,08,12,00,270,,04,77,172,,07,51,089,,13,34,036,*76
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGSV,2,2,08,17,08,187,,02,58,309,,08,45,151,,25,40,059,*77'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGSV,2,2,08,17,08,187,,02,58,309,,08,45,151,,25,40,059,*77'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GSV'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:770) - GSV detected:
		$GPGSV,2,2,08,17,08,187,,02,58,309,,08,45,151,,25,40,059,*77
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key satellite_info
		oldvalue=[Lorg.dinopolis.gpstool.gpsinput.SatelliteInfo;@921fc7
		new=[Lorg.dinopolis.gpstool.gpsinput.SatelliteInfo;@14b003e
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPRMC,095826.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*65'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPRMC,095826.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*65'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'RMC'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:721) - RMC detected:
		$GPRMC,095826.5,V,2828.15398,N,01617.71874,W,,,010609,,,N*65
		DEBUG [GPSNmeaDataProcessor] (GPSGeneralDataProcessor.java:417) - fire event
		for key location oldvalue=GPSPosition[lat: 28.469233,
		long:-16.29531233333333] new=GPSPosition[lat: 28.469233,
		long:-16.29531233333333]
		DEBUG [GPSNmeaDataProcessor] (NMEA0183Sentence.java:62) - raw
		data='$GPGGA,095827.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2D'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:342) - message:
		'$GPGGA,095827.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2D'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:343) - sentenceId:
		'GGA'
		DEBUG [GPSNmeaDataProcessor] (GPSNmeaDataProcessor.java:620) - GGA detected:
		$GPGGA,095827.5,2828.15398,N,01617.71874,W,0,00,,00384,M,,,,*2D
		
		
		Juan Guillermo Jordán Aldasoro wrote:
		>
		>
		>
		>
		>  
		>  
		>
		>
		> Hola, me gustaría que me dijeras cómo obtienes esas coordenadas del GPS
		> a través de libLocation. En principio no deberías obtener coordenadas
		> con ese formato "2828.15398,N,01617.71874,W", ya que lo que devuelve la
		> librería son 2 números en formato double, donde la N y la W se
		> transformarían en signos (positivo y negativo, respectivamente).
		>
		> Si lo que dices que te devuelve es de tipo String, entonces según el
		> formato NMEA de coordenadas, se correspondería a latitud 28º28.15398',
		> longitud -16º17.71874', con lo cual tendrías que convertir los minutos
		> a grados, y te quedaría
		> latitud 28.469233, longitud -16.295312 en el SRS 4326 (elipsoide de
		> referencia WGS84).
		>
		> Pero como te digo, libLocation no te debería devolver coordenadas de
		> tipo String (sin procesar), o sea que algo debes estar haciendo mal.
		> ¿Puedes detallar el código fuente que usas para obtener estas
		> coordenadas y pegar también uans cuantas líneas del log NMEA para saber
		> qué es lo que te está enviando tu GPS?
		>
		> Saludos
		> Juangui
		>
		> Pedro A. Peñalver Yusta escribió:
		>
		>   Hola, estoy usando la librería LibLocation para obtener la posición
		> actual,
		> ya consigo leer los datos del GPS que me devuelve la posición como latitud
		> y
		> longitud (me devuelve: 2828.15398,N,01617.71874,W) ahora me gustaría poder
		> dibujar un punto en esa posición en mi mapa, pero la verdad no tengo ni
		> idea
		> de como hacerlo, creo que tengo que cambiar a la proyección, pero no se
		> exactamente como hacerlo. ¿Alguna idea de como pasar esas coordenadas al
		> mapa y dibujar un punto?. Saludos y gracias!
		>  
		>  
		>
		> _______________________________________________
		> gvSIG_desarrolladores mailing list
		> gvSIG_desarrolladores en runas.cap.gva.es
		> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
		>  
		>
		>
		>
		>
		>
		> _______________________________________________
		> gvSIG_desarrolladores mailing list
		> gvSIG_desarrolladores en runas.cap.gva.es
		> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
		>
		>
		
		--
		View this message in context: http://n2.nabble.com/GPS-tp2993856p3005467.html
		Sent from the gvSIG desarrolladores mailing list archive at Nabble.com.
		
		
		

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20090601/ed089897/attachment.htm


Más información sobre la lista de distribución gvSIG_desarrolladores