entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

cambiar la lat y long por el label al lanzar el navegador nativo android

tengo una activity de google maps api v2 la cual leo unas coordenadas de latitud y longitud de el marker que tengo puesto y al clicar concretamente en la infowindow de ese marquer, lanzo un intent del navegador nativo android:

map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
    @Override
    public void onInfoWindowClick(Marker marker) {
        String nombre = marker.getTitle();
        double lat = marker.getPosition().latitude;
        double longi = marker.getPosition().longitude;

        Uri geoLocation = Uri.parse("geo:0,0?q="+lat+","+longi+"("+nombre+")")

        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(geoLocation);

        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }
});

El tema esta en que en el navegador gps me aparecen las coordenadas en el sitio del Label y al reves.
Yo tengo:
enter image description here
Y quiero:
enter image description here
vamos, cambiar una cosa por la otra i mi linea de codigo donde lo asigno en teoria esta hecho para la segunda forma
gracias!

0voto

Leonardo-Tadei comentado

La verdad es que no entiendo qué es lo que ves "al revés"... en ambas capturas se ve en el orden "Latitud, Longitud".
Tal vez baste con explicarte un poco mejor o al menos poner capturas del mismo punto geográfico para que veamos la diferencia.
Saludos

0voto

jamespk23 comentado

si, voy a aclararlo, lo que esta al reves si te fijas es que en al segunda foto, esta primero edificio y debajo la latitud y longitud, y en MI caso esta primero la latitud y la longitud y debajo la etiqueta, en este caso Drac!

Editado: movido como respuesta al comentario.

0voto

Leonardo-Tadei comentado

Ahora lo veo... y cuál es el código que usás para mostrar los datos del marker???
O es que el navegador nativo está mostrando datos de una aplicación en un servidor web que es la otra parte de una app móbil híbrida?

0voto

jamespk23 comentado

no, el navegador nativo directamente interpreta los datos que le paso en la linea:
Uri geoLocation = Uri.parse("geo:0,0?q="+lat+","+longi+"("+nombre+")");

yo creo que el error debe estar aqui, al ahora de que el navegador gps interpreta esta linea.

la app movil es nativa total, no se conecta a ningun servidor.

0voto

Peter comentado

@jamespk23 moví tu respuesta a comentario, porque no es una respuesta a la pregunta. Saludos.

2 Respuestas

1voto

Leonardo-Tadei Puntos227320

Hola @jamespk23,

siendo que estás haciendo una llamada al navegador nativo, yo creo que te interpreta la línea y la visualiza según como lo concibió el desarrollador.

Si no hay ningún parámetro documentado para agregar a la llamada Uri geoLocation = Uri.parse("geo:0,0?q="+lat+","+longi+"("+nombre+")"); no creo que esta se pueda cambiar.

Habría que ver si no hay un parámetro o una API que permita definir esto... de otra forma será imposible controlar este detalle de la visualización.

0voto

manelcc Puntos580

Saludos,

En Android Developers nos encontramos con diferentes llamadas:

https://developer.android.com/guide/components/intents-common.html#Maps

Entre ellas nos encontramos con

geo:0,0?q=lat,lng(label)
Show the map at the given longitude and latitude with a string label.
Example: "geo:0,0?q=34.99,-106.61(Treasure)"

Como veras es la que has utilizado, creas un Uri.parse en donde pasas unas coordenadas y etiquetas dicha coordenada, es posible que por eso te salgan las coordenadas y luego el nombre "etiqueta" de la coordenada.

Si lo que queremos es que salga primero la dirección y no etiqueta de coordenada puedes provar lo siguiente

geo:0,0?q=my+street+address
Show the location for "my street address" (may be a specific address or location query).
Example: "geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA"

Con este parametro obtienes la localización mediante la dirección, ahora bien, cuidado porque hay que codificar todo el String que pases y los espacios deben ser %20

Note: All strings passed in the geo URI must be encoded. For example, the string 1st & Pike, Seattle should become 1st%20%26%20Pike%2C%20Seattle. Spaces in the string can be encoded with %20 or replaced with the plus sign (+).

Ya nos contaras..

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta