2010-08-26 16 views
29

que estoy tratando de conseguir un GeoPoint para -23.4456 por 45,44334GeoPoint Android con valores de longitud/latitud

¿Qué valores puedo pasar al constructor de la GeoPoint ya que sólo se toma Ints.

+0

posible duplicado de [cómo dar doble valor a Geopoint en las superposiciones de GoogleMap?] (Http://stackoverflow.com/questions/2227816/how-to-give-double-value-to-geopoint-in-googlemap- superposiciones) – nawfal

Respuesta

72

coordenadas GeoPoint se basan en microgrados (grados * 1e6) - escrita here

float lat = -23.4456f; 
float lng = 45.44334f; 
GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6)); 
+1

"La versión 1 de la API de Google Maps para Android ha quedado obsoleta desde el 3 de diciembre de 2012". –

30

en lugar de repetir los cálculos a lo largo de mi aplicación, prefiero crear un LatLonPoint:

private static final class LatLonPoint extends GeoPoint { 
    public LatLonPoint(double latitude, double longitude) { 
     super((int) (latitude * 1E6), (int) (longitude * 1E6)); 
    } 
} 

entonces donde sea que necesite crear un GeoPoint y tengo un lat/lon solo lo hago

GeoPoint point = new LatLonPoint(37.234569, -122.123456); 

realmente debería haber un constructor lat/long en GeoPoint en primer lugar.

6

que tomaron la latitud/longitud de this page y lo escribí sin un punto ... funcionó muy bien, mi casa está allí, donde debería estar;)

así que en vez de (arriba) 34.234569 acaba de escribir 34234569 ... recuerde: 1e6 es 1000000, nada más;)

1

Estoy buscando la solución, puede ser que lo ayude.

1) Primero tiene datos (Ubicación) en formato de grado. 2) Por la ecuación tienes que multiplicar por 1000000 3) ahora, tienes una ubicación GEO POINT particular.

Me gusta aquí; si tengo una ubicación como: Latitud: 23.0395677 y Longitud: 72.5660045 ° Por lo tanto, su GeoPoint (23039568,72566045);

Cuestiones relacionadas