Calcular las coordenadas GPS de los lados de la calle en un mapa
Tengo la coordenada GPS del usuario en un mapa (indicado por punto rojo en la imagen)
- ¿Cómo poner un retraso en la llamada de una actividad de otra actividad?
- Proveedor de ubicación fusionado en Android
- Dado coordenadas GPS, ¿cómo encuentro puntos de interés cercanos o puntos de interés?
- Utilizando gps en un mapa estático en android?
- No se pudo encontrar la clase 'com.google.android.gms.location.internal.ParcelableGeofence referenciada desde el método glt.a
Me gustaría calcular las coordenadas GPS de los puntos azules en el mapa.
Los puntos son equidistantes del punto rojo de cada lado. Si puedo conseguir el título de la calle en comparación con el norte magnético puedo calcular los puntos o hay alguna otra manera fácil?
- ¿Por qué Android GPS no es capaz de encontrar la ubicación hasta que el mapa de google está activado incluso si mi teléfono admite A-GPS
- Cada 1 minuto Gps LatLong Obtener de servidor que se muestra en el mapa como marcador. Sin embargo, Marker Geting Duplicating
- Dada una latitud y longitud, Obtenga el nombre de ubicación
- Android Turn-by-Turn API?
(He probado que utilizar la versión de mapa 1 , no mapa de api V2.)
Antes de seguir los pasos, debe conocer la distancia y el ángulo antes de encontrar las coordenadas.
Pasos:
-
Cambie el punto geográfico a píxel (x, y). (Usar proyección )
-
Obtener el tamaño de píxel de la distancia (d). (Use metersToEquatorPixels )
-
Entonces obtienes un punto (d, 0)
-
Rotar (d, 0) ==> Se obtendrá un nuevo punto que se espaciará en d de (0, 0) ==> (a, b)
-
(X + a, b + y) es un punto que usted desea.
-
Obtener coordenadas geográficas de (x + a, y + b) utilizar esto .
El formulario de rotación es
(x'*cos(θ) - y'*sin(θ), x'*sin(θ) + y'*cos(θ))
Así, usted puede cambiar esto simple.
(d*cos(θ), d*sin(θ)) // This is a point of step 4. (a,b)
Mi código es.
// you should know distance and angle Point px = new Point(); Point px2 = new Point(); mapView.getProjection().toPixels(mGeoPt, px); float pixedDis = mapView.getProjection().metersToEquatorPixels(distance); px2.x = (int)(pixedDis*Math.cos(angle)) + px.x; px2.y = (int)(pixedDis*Math.sin(angle)) + px.y; GeoPoint gp3 = mapView.getProjection().fromPixels(px2.x, px2.y);