Continuando con los ejemplos de kotlin hoy veremos como usar google maps, después de implementar verán que no es muy diferente a lo que hacíamos en java, les cuento de forma rápida de que trata este ejemplo la idea es usar un google map y luego insertaremos las coordenadas (latitud,longitud) y la app nos dibujara la ubicación en el mapa.
Sin mas rodeos empezamos con el ejercicio:
Android-Kotlin google maps ejemplo
Paso 1: Creamos una nueva aplicación y hacemos check como señala la flecha roja.
Paso 2: Seleccionamos la versión mínima de nuestra app
Paso 3: Hacemos clic en Google Maps Activity
Luego de esto se nos crear tres archivos, MapsActivity.kt, activity_maps, google_maps_api y sera los que vamos a configurar a continuación:
activity_maps
<fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.androfast.server.appgooglemapkotlin.MapsActivity" />
MapsActivity
import android.support.v7.app.AppCompatActivity import android.os.Bundle import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.MarkerOptions class MapsActivity : AppCompatActivity(), OnMapReadyCallback{ private var mMap: GoogleMap? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap // Agregamos marcadores en peru val marcador = LatLng(-6.761120, -79.86355) mMap?.let { it.addMarker(MarkerOptions().position(marcador).title("Marcador en Peru")) it.moveCamera(CameraUpdateFactory.newLatLng(marcador)) } } }
google_maps_api
Dentro de este archivo debes poner tu api key de google map, también es valido ponerlo directamente den el AndroidManifest
<resources> <!-- TODO: Before you run your application, you need a Google Maps API key. To get one, follow this link, follow the directions and press "Create" at the end: https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=74:A5:00:DD:84:79:8F:90:99:08:95:A6:66:88:3F:E3:55:38:89:DD%3Bcom.androfast.server.appgooglemapkotlin You can also add your credentials to an existing key, using these values: Package name: 74:A5:00:DD:84:79:8F:90:99:08:95:A6:66:88:3F:E3:55:38:89:DD SHA-1 certificate fingerprint: 74:A5:00:DD:84:79:8F:90:99:08:95:A6:66:88:3F:E3:55:38:89:DD Alternatively, follow the directions here: https://developers.google.com/maps/documentation/android/start#get-key Once you have your key (it starts with "AIza"), replace the "google_maps_key" string in this file. --> <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">Aqui va tu api key</string> </resources>
La api key la puedes obtener del siguiente enlace: https://console.developers.google.com/apis/credentials
Recuerda que debe habilitar el siguiente servicio dentro de tus credenciales:
Si has seguido mi tutorial no necesitas hacer nada mas, en cambio si lo haces de forma manual te sugiero que descargues el ejercicio completo del siguiente link que te dejo a continuación.
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!