[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