Regresa a Android Studio y pegue la clave de API en la sección YOUR_KEY_HERE del archivo:
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR_KEY_HERE</string>
Prueba de la aplicación
Realizar una prueba de funcionamiento de la aplicación para comprobar que la clave de la API está configurada correctamente. Suponiendo que la configuración es correcta, la aplicación se ejecutará y mostrará un mapa en la pantalla.
En el caso de que un mapa no aparece, compruebe las siguientes áreas:
- Asegúrese que tu aplicación tenga acceso a Internet.
- Si se ejecuta la aplicación en un emulador, asegúrese de que el emulador está ejecutando una versión de Android que incluye las API de Google. El sistema operativo actual se puede cambiar para una configuración AVD al seleccionar Herramientas -> Android -> opción de menú Administrador de AVD, al hacer clic en el icono de lápiz en la columna Acciones de la AVD seguido por el botón Cambiar ... junto a la versión de Android actual. Dentro del diálogo de imagen del sistema, seleccione un objetivo que incluye las API de Google.
- Compruebe la salida LogCat para las áreas relacionadas con problemas de autenticación con respecto a la API de Google Maps. Esto generalmente significa que la clave de la API se introdujo incorrectamente o que el nombre del paquete de aplicación no coincide con el especificado cuando se generó la clave de API.
- Verifique en la Consola de API de Google que la API de Google Maps para Android se ha habilitado en el panel Servicios.
La comprensión de geocodificación y geocodificación inversa
Es imposible hablar de mapas y ubicaciones geográficas sin cubrir primero el tema de geocodificación.
Geocodificación mejor se puede describir como el proceso de convertir una ubicación geográfica basada textual (por ejemplo, una dirección de calle) en coordenadas geográficas expresadas en términos de longitud y latitud.
Geocodificación se puede lograr mediante la clase Android Geocoder. Una instancia de la clase Geocoder puede, por ejemplo, puede pasar una cadena que representa una ubicación, como un nombre de ciudad, dirección o código de aeropuerto.
El Geocoder intentará encontrar una coincidencia para la ubicación y devolverá una lista de objetos de dirección que potencialmente responden a la cadena de ubicación, clasificados en orden con el valor más cercano a la posición 0 en la lista. Una variedad de información puede ser extraída de los objetos de dirección, incluyendo la longitud y latitud de los partidos posibles.
El siguiente código, por ejemplo, pide la ubicación del Museo Nacional del Aire y del Espacio en Washington, DC:
java.io.IOException importación;
java.util.List importación;
android.location.Address importación;
android.location.Geocoder importación;
.
.
.
latitud doble;
longitud doble;
Lista <Dirección> geocodeMatches = null;
try {
geocodeMatches =
nueva Geocoder (este) .getFromLocationName (
"600 Independence Ave SW, Washington, DC 20560", 1);
} Catch (IOException e) {
// Bloque catch generada automáticamente TODO
e.printStackTrace ();
}
if (! geocodeMatches.isEmpty ())
{
latitud = geocodeMatches.get (0) .getLatitude ();
longitud = geocodeMatches.get (0) .getLongitude ();
}
Tenga en cuenta que el valor de 1 se pasa a través como el segundo argumento del método getFromLocationName ().
Esto simplemente le dice al Geocoder para devolver sólo uno de los resultados de la matriz. Dada la naturaleza específica de la dirección proporcionada, sólo debe haber un partido potencial.
Para nombres de ubicación más vagas, sin embargo, puede ser necesario solicitar más partidos posibles y permitir al usuario elegir la correcta.
El código anterior es un ejemplo de visión de geocodificación en que las coordenadas se calculan sobre la base de una descripción de la ubicación de texto. Reverse-geocodificación, como su nombre indica, consiste en la traducción de las coordenadas geográficas en una cadena de dirección legible por humanos. Consideremos, por ejemplo, el siguiente código:
java.io.IOException importación;
java.util.List importación;
android.location.Address importación;
android.location.Geocoder importación;
.
.
.
Lista <Dirección> geocodeMatches = null;
Address1 Cadena;
Address2 Cadena;
Estado de cuerda;
Código Postal de cuerda;
Cadena País;
try {
geocodeMatches =
nuevo (este) .getFromLocation Geocoder (38.8874245, -77.0200729, 1);
} Catch (IOException e) {
// Bloque catch generada automáticamente TODO
e.printStackTrace ();
}
if (! geocodeMatches.isEmpty ())
{
Address1 = geocodeMatches.get (0) .getAddressLine (0);
Address2 = geocodeMatches.get (0) .getAddressLine (1);
Estado = geocodeMatches.get (0) .getAdminArea ();
CP = geocodeMatches.get (0) .getPostalCode ();
País = geocodeMatches.get (0) .getCountryName ();
}
En este caso el objeto Geocoder se inicializa con los valores de latitud y longitud a través del método de getFromLocation ().
Una vez más, se pide un solo resultado de la casación. La información de dirección basado en texto se extrae del objeto dirección resultante.
Cabe señalar que la geocodificación no es efectuado en el dispositivo Android, sino más bien en un servidor al que se conecta el dispositivo cuando se requiere una traducción y los resultados devueltos posteriormente cuando la traducción es completa. Como tal, geocodificación sólo puede tener lugar cuando el dispositivo tiene una conexión activa a Internet.
Comentarios