es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Realizar la operación del GPS para latitud/longitud con geotools.

Primero, soy un principiante en sistemas de GPS.
Tengo coordenadas GPS en WGS-84 recibidas de un GPS básico en USB.
Quiero calcular la distancia entre estos dos puntos.
Pero quiero las distancias planas. Así que primero tengo que convertir estas coordenadas a otro CRS, por ejemplo “EPSG:2154” para Lambert 93. Y después calcular la distancia.
Intento usar Geotools pero los ejemplos en los documentos no son relevantes para mí y no entiendo cómo hacer esto.
Pensé primero en encontrar la transformación coincidente así:

DefaultGeographicCRS crs = DefaultGeographicCRS.WGS84;
    //EPSG:2154 RGF93 / Lambert-93 (buscalo en Google)
    CoordinateReferenceSystem crs2 = CRS.decode("EPSG:2154");
    MathTransform transform = CRS.findMathTransform(crs, crs2);

Pero después de leer los documentos, parece que la transformación funciona para coordenadas x, y, no lat/long. Y no entiendo cómo usar MathTransform ya que no acepta puntos con lat/long. También intenté el ejemplo a continuación, pero al ejecutar el código no obtengo los mismos resultados.

Así que si alguien con buen conocimiento en GPS y Geotools puede ayudarme, se lo agradecería.

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Uso de Geotools para calcular la distancia entre dos puntos GPS en distancia plana

    Si tienes coordenadas GPS en formato WGS-84 y deseas calcular la distancia entre estos dos puntos en distancias planas, primero debes convertir estas coordenadas a otro CRS como “EPSG:2154” para Lambert 93. Puedes lograr esto utilizando Geotools.

    Sin embargo, es posible que encuentres dificultades al intentar encontrar la transformación correspondiente. El siguiente código puede ayudarte a encontrar la transformación correspondiente:

    DefaultGeographicCRS crs = DefaultGeographicCRS.WGS84;
    CoordinateReferenceSystem crs2 = CRS.decode("EPSG:2154");
    MathTransform transform = CRS.findMathTransform(crs, crs2);
    

    Es importante tener en cuenta que esta transformación funciona para coordenadas x, y en lugar de latitud/longitud. Por lo tanto, debes convertir las coordenadas de latitud/longitud a coordenadas x, y utilizando la transformación antes de calcular la distancia.

    Puedes consultar el código de ejemplo en Stack Overflow para calcular la distancia entre dos puntos utilizando sus coordenadas de latitud/longitud.

    Si encuentras más dificultades, busca la ayuda de un experto en GPS y Geotools.

Comments are closed.