Acceder

Ver la Versión Completa : [ CONSULTA ] como marcar una ruta con google maps api v2? y como a partir de una dirección te lo marque en un mapa


solfree
25/04/13, 02:12:23
hola a todos, alguien sabe como hacer desde una App que dados dos puntos te marque la ruta?...he visto una App que si lo hace "dónde está mi coche!!!".. le he mandado un mail al autor y si me contesta lo posteo pero por si acaso no me contesta y alguien sabe como hacerlo..se lo agradeceré infinito.

Por otra parte, alguien sabe como hacer que a partir de una dirección te la marque en un mapa, al estilo de la web google maps?

todo esto me refiero con la api v2... que es la que acabo de conocer..las demás no tengo ni idea...llevo un mes peleándome con android.....

gracias por adelantado..

Quim

kriogeN
25/04/13, 09:39:54
Para la 2ª pregunta, da igual con que API sea, como si no usas mapas, tienes que usar Geocoder:

http://developer.android.com/intl/es/reference/android/location/Geocoder.html

Yo lo que hago es cuando hago pulsación larga sobre el mapa (con API V2) en ese momento hacer la solicitiud del Geocoder, creo que es bastante aproximado a lo que buscas.

Si no te aclaras con el Geocoder dilo y te pongo un fragmento del código que uso yo.

solfree
25/04/13, 11:38:52
ups..esto del geocoder es nuevo...
muchas gracias voy a mirarlo!

solfree
25/04/13, 12:21:18
bueno, pues te agradeceré que me pongas ese fragmento..ya que según estoy viendo lo del overlay para usarlo con el geocoder está obsoleto .. ¿o me estoy liando?
gracias de nuevo

kriogeN
25/04/13, 13:28:50
EDITO: Perdón, acabo de volver a releer tu pregunta y esta función hace justo lo contrario. Ahora después te pongo un código que hace justo lo que quieres, que también lo tengo hecho en mi App.


Geocoder geocoder = new Geocoder(mContext);
double latitude = latlng.latitude;
double longitude = latlng.longitude;
List<Address> addresses = null;
String addressText="";
try {
addresses = geocoder.getFromLocation(latitude, longitude,1);

if(addresses != null && addresses.size() > 0 ){
Address address = addresses.get(0);
addressText = String.format("%s, %s, %s",
address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "",
address.getLocality(),
address.getCountryName());
}
}
catch (IOException e) {
e.printStackTrace();
}
return addressText;

Como estás usando API V2 el punto que va a hacer el GeoCoding es un punto LatLng, te viene al pelo. Recuerda usar la función fuera del UI Thread o no te funcionará en Android 4.0+

EDITO 2: Este si es el código que hace lo que quieres


Geocoder geocoder = new Geocoder(mContext);
List<Address> addresses = null;

try {
addresses = geocoder.getFromLocationName(locationName[0], 3);
} catch (IOException e) {
e.printStackTrace();
}
return addresses;


Al igual que el anterior necesitas que se ejecute fuera del UI Thread, te devolverá un Array de como máximo 3 direcciones aproximadas (lo puedes aumentar o disminuir). Para convertir cada una de las direcciones en un punto LatLng se hace así:


for(int i=0;i<addresses.size();i++){

Address address = (Address) addresses.get(i);

LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
}

solfree
25/04/13, 16:26:09
entonces lo que he leído de overlay no tiene nada que ver?..puedo trabajar con el fragment y el geoposicionamiento?

muchas gracias de nuevo...me pongo en ello...

EDITO por cierto.. .yo no estoy utilizando threads...deberia hacerlo? lo digo por lo de UI thread..

solfree
25/04/13, 19:56:34
Bueno kriogeN (http://www.htcmania.com/member.php?u=381391)

nada más decirte que eres una máquina!...me funciona todo!! muchísimas gracias! Puedo preguntarte de dónde sacas toda esta info?.. llevas mucho con android? me recomiendas algún libro?

ahora sólo me queda lo de marcar el camino entre dos puntos... si lo consigo lo posteo..he encontrado algo en stackoverflow...pero de momento no me aclaro!

gracias de nuevo!

solfree
26/04/13, 23:37:26
hola de nuevo,
ya he encontrado como poner el recorrido entre dos o mas puntos
os dejo el link por si alguien le interesa

http://wptrafficanalyzer.in/blog/route-between-two-locations-with-waypoints-in-google-map-android-api-v2/

saludos
Quim