Tutorial Actualizado Google Maps Android.
Lo primero que necesitan es configurar su proyecto es tener instalados los Google Play services y para usar la API de Google Maps, deben crear una api key, para hacer esto les voy a dejar el link del tutorial en ingles desarrollado por Erel https://www.b4x.com/android/forum/threads/google-maps.63930/
-Para actualizar los servicios de Google Play, deben ir donde tengan instalada la SDK de Android y ejecutar SDK Manager. (Yo les recomiendo por mi parte es instalar Android Studio y usar el sdk que trae Android Studio, es fácil de actualizar).
-Para crear el API KEY, necesitamos crear una Private Sign Key para ello dentro de B4A tenemos que seleccionar Tools - Private Sign Key.
-Una ves creada tenemos que copiar el valor de SHA1.
* Deben registrar la aplicación en : https://console.developers.google.com
* Deben habilitar el API de Google Maps para Android
* Luego hacer click en Credenciales -> Crear Credenciales -> Clave de API -> Clave de Android (Si no le aparece esta opción, primero les pedirá crear un proyecto, luego ya verán la opción para crear la clave) Solo siga los pasos que se indican ahí para crear la clave.
Una ves creada debería tener una clave como esta: AIzaSyCmFHamGE0O0BvxxxxxxxxXbTCSrjFVg-Q
-librerías que necesitaremos:
* GoogleMaps v2.0 https://www.b4x.com/android/forum/attachments/googlemaps-zip.41897/
* GPS
Para B4A v6+
Debe añadir el siguiente fragmento de código de Google Play Service a Manifest Editor.
Y añadir esta linea en su Activity Main.
Para B4A v5.8
Debe añadir el siguiente fragmento de código a Manifest Editor.
Y añadir estas lineas en su Activity Main.
Para ambas versiones de B4A debe seleccionar en Android Manifest minSdkVersion a 14 (Android 4)
Una ves realizada esta configuración solo queda agregar nuestro mapa.
En designer Agregan a un layout un MapFragment como muestra en la siguiente imagen.
Y el código en su Activity Main seria el siguiente.
Este código es hecho por mi y probado, funciona perfectamente, esta realizado en B4A v6.
Una captura de como debería verse una ves hecho todo lo anterior.
Si quieren obtener mayor información al inicio esta el link del post original en ingles.
Espero les ayude en sus proyectos que puedan tener.
Saludos.
Lo primero que necesitan es configurar su proyecto es tener instalados los Google Play services y para usar la API de Google Maps, deben crear una api key, para hacer esto les voy a dejar el link del tutorial en ingles desarrollado por Erel https://www.b4x.com/android/forum/threads/google-maps.63930/
-Para actualizar los servicios de Google Play, deben ir donde tengan instalada la SDK de Android y ejecutar SDK Manager. (Yo les recomiendo por mi parte es instalar Android Studio y usar el sdk que trae Android Studio, es fácil de actualizar).
-Para crear el API KEY, necesitamos crear una Private Sign Key para ello dentro de B4A tenemos que seleccionar Tools - Private Sign Key.
-Una ves creada tenemos que copiar el valor de SHA1.
* Deben registrar la aplicación en : https://console.developers.google.com
* Deben habilitar el API de Google Maps para Android
* Luego hacer click en Credenciales -> Crear Credenciales -> Clave de API -> Clave de Android (Si no le aparece esta opción, primero les pedirá crear un proyecto, luego ya verán la opción para crear la clave) Solo siga los pasos que se indican ahí para crear la clave.
Una ves creada debería tener una clave como esta: AIzaSyCmFHamGE0O0BvxxxxxxxxXbTCSrjFVg-Q
-librerías que necesitaremos:
* GoogleMaps v2.0 https://www.b4x.com/android/forum/attachments/googlemaps-zip.41897/
* GPS
Para B4A v6+
Debe añadir el siguiente fragmento de código de Google Play Service a Manifest Editor.
B4X:
AddApplicationText(
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="Aquí va su api key"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
)
Y añadir esta linea en su Activity Main.
B4X:
#AdditionalJar: com.google.android.gms:play-services-maps
Para B4A v5.8
Debe añadir el siguiente fragmento de código a Manifest Editor.
B4X:
AddManifestText( <permission
android:name="$PACKAGE$.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>)
AddApplicationText(<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="Aquí va su api key"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
)
Y añadir estas lineas en su Activity Main.
B4X:
#AdditionalRes: $AndroidSDK$\extras\google\google_play_services\libproject\google-play-services_lib\res, com.google.android.gms 'esta es la ruta donde se encuentra instalada su SDK de android.
#ExcludeClasses: .games, .drive, .fitness, .wearable, .measurement, .cast, .auth, .nearby
#ExcludeClasses: .tagmanager, .analytics, .wallet, .plus, .vision, .gcm
'remove the following line if you use AdMob
#ExcludeClasses: .ads
Para ambas versiones de B4A debe seleccionar en Android Manifest minSdkVersion a 14 (Android 4)
Una ves realizada esta configuración solo queda agregar nuestro mapa.
En designer Agregan a un layout un MapFragment como muestra en la siguiente imagen.
Y el código en su Activity Main seria el siguiente.
B4X:
#Region Project Attributes
#ApplicationLabel: Mapas Ejemplo
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#AdditionalJar: com.google.android.gms:play-services-maps
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
Dim GPS As GPS
'Dim D As DoubleTaptoClose
End Sub
Sub Globals
Private gmap As GoogleMap
Private MapFragment1 As MapFragment
Dim Latitud As Double = 0
Dim Longitud As Double = 0
Dim Lat2 As Double = 0
Dim Lon2 As Double = 0
Dim p1, p2 As Location
Dim Distance As Float
Dim boton1 As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("LayoutMapa")
If MapFragment1.IsGooglePlayServicesAvailable = False Then
ToastMessageShow("Please install Google Play Services.", True)
End If
GPS.Initialize("GPS")
'Boton velocidad'
boton1.Initialize(0)
boton1.Text = 0 &" "&"km/h"
boton1.TextColor = Colors.Red
boton1.TextSize = 15
Activity.AddView(boton1, 40%x, 5dip, 25%x, 40dip)
'Fin Boton velocidad'
End Sub
Sub MapFragment1_Ready
gmap = MapFragment1.GetMap
Dim JavaMapsObject As JavaObject
JavaMapsObject = gmap.GetUiSettings
JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
' Dim m1 As Marker = gmap.AddMarker(10, 30, "test")
' m1.Snippet = "This is the snippet"
Dim cp As CameraPosition
cp.Initialize(-33.469119900000000000 , -70.641997000000000000, 15)
gmap.AnimateCamera(cp)
End Sub
Sub GPS_LocationChanged (Parametro As Location)
Dim sp As Int
sp = Ceil(Parametro.Speed * 3.6)
boton1.Text = sp &" "&"km/h"
Latitud = Parametro.Latitude
Longitud = Parametro.Longitude
p2.Initialize2(Latitud,Longitud)
p1.Initialize2(Lat2, Lon2)
Distance = p1.DistanceTo(p2)
If Latitud <> 0 And Longitud <> 0 Then
If Distance > 10 Then
Lat2 = Latitud
Lon2 = Longitud
Dim cp As CameraPosition
cp.Initialize2(Parametro.Latitude, Parametro.Longitude, gmap.CameraPosition.Zoom, Parametro.Bearing, 0)
gmap.AnimateCamera(cp)
End If
End If
End Sub
Sub Activity_Resume
If GPS.GPSEnabled = False Then
ToastMessageShow("Debe Activar el GPS del Equipo.", True)
StartActivity(GPS.LocationSettingsIntent) 'Will open the relevant settings screen.
Else
GPS.Start(0, 0) 'Listen to GPS with no filters.
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
GPS.Stop
End Sub
Este código es hecho por mi y probado, funciona perfectamente, esta realizado en B4A v6.
Una captura de como debería verse una ves hecho todo lo anterior.
Si quieren obtener mayor información al inicio esta el link del post original en ingles.
Espero les ayude en sus proyectos que puedan tener.
Saludos.
Last edited: