programa planas para manualmente gratis google geograficas decimales coordenadas convertir convertidor conversor como calcular ios gps latitude-longitude augmented-reality coordinate-transformation

ios - planas - coordenadas utm google maps



la conversión de coordenadas gps a opengl palabra en AR (2)

Esto podría deberse a que el GPS usa un sistema de coordenadas esféricas (ish) e intenta asignarlo directamente a un sistema cartesiano de coordenadas (un plano).

Lo que podría hacer es convertir las coordenadas de su GPS a un plano de referencia local, en lugar de asignarlas directamente. Si considera su propia ubicación como el origen de su sistema de coordenadas, puede obtener las coordenadas polares de los puntos en el plano de tierra en relación con el origen y el norte verdadero usando la distancia de círculo máximo (r) y el rumbo (theta) entre su ubicación y la coordenada remota, y luego encubrirla a coordenadas cartesianas usando (x, y) = (r * cos (theta), r * sin (theta)).

Mejor otra vez para su caso, una vez que tenga la gran orientación del círculo, puede acortar la distancia (r). Eso arrastrará los puntos más cerca de ti en ambos x e y, pero seguirán estando en el rumbo relativo correcto, solo necesitarás indicar esto de alguna manera.

Otro enfoque es escalar el tamaño de los objetos que está visualizando para que se agranden con la distancia para compensar la perspectiva. De esta forma, puede usar directamente la posición y orientación correctas.

Esta página tiene los algoritmos de rumbo / distancia: http://www.movable-type.co.uk/scripts/latlong.html

Tengo una lista de coordenadas gps (long, lat) y tengo mi posición actual (long, lat). descubrí que restando las dos coordenadas encuentro las coordenadas relativas desde mi posición, y las coordenadas que uso en mi aplicación AR para dibujar el pois en el mundo OpenGL.

el problema es que las coordenadas lejanas todavía estarán demasiado lejos para "ver", así que quiero una ecuación para traducir todo para estar cerca de mi posición, pero con su posición relativa original.

double kGpsToOpenglCoorRatio = 1000; - (void)convertGlobalCoordinatesToLocalCoordinates:(double)latitude x_p:(double *)x_p longitude:(double)longitude y_p:(double *)y_p { *x_p = ((latitude - _userLocation.coordinate.latitude) * kGpsToOpenglCoorRatio); *y_p = ((longitude - _userLocation.coordinate.longitude) * kGpsToOpenglCoorRatio); }

Intenté aplicar la raíz cuadrada para darles un "límite de distancia", pero sus posiciones se confundieron con respecto a su posición original.


Terminé resolviéndolo usando la ecuación de la coordenada gps interceptada con el círculo en el que quiero que aparezca todo el pois, funciona perfectamente. No usé rodamientos en ningún lado. aquí está el código si alguien está interesado:

- (void)convertGlobalCoordinatesToLocalCoordinates:(double)latitude x_p:(double *)x_p longitude:(double)longitude y_p:(double *)y_p { double x = (latitude - _userLocation.coordinate.latitude) * kGpsToOpenglCoorRatio; double y = (longitude - _userLocation.coordinate.longitude) * kGpsToOpenglCoorRatio; y = (y == 0 ? y = 0.0001 : y); x = (x == 0 ? x = 0.0001 : x); double slope = x / ABS(y); double outY = sqrt( kPoiRadius / (1+pow(slope,2)) ); double outX = slope * outY; if (y < 0) { outY = -1 * outY; } *x_p = outX; *y_p = outY; }