Spanish Marcas en Mapa

jgimenez

Member
Saludos.
Tengo una pequeña app que guarda latitudes y longitudes en una base de datos de SQLite.
Cómo puedo mostrar en Google Maps como marcadores esas latitudes y longitudes en mi aplicación B4A?
Gracias por sus comentarios!
 

DonManfred

Expert
Licensed User
Longtime User
 

jgimenez

Member
Gracias DonManfred
Pude avanzar algo, pero no consigo que se muestren los marcadores, solamente un mapa en blanco, asi:

1662402897632.png


Para eso seguí estos pasos:
1-Obtuve una API Key en Google
2- Cree una actividad llamada mapa en la que inserté un MapFragment1
3 - Llamo a esa actividad mediante un boton en mi Actividad Principal
3- En la acticidad mapa tengo, el siguiente código:

Prueba Marcas Lat Long Google:
#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    'Private rp As RuntimePermissions
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.

    Private MapFragment1 As MapFragment
    Private gmap As GoogleMap
    Dim M1 As Marker
    
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("mapa")
End Sub

Sub Activity_Resume
    Try
        Wait For gmap_Ready
        gmap = MapFragment1.GetMap
        Dim latitud As Double
        Dim longitud As Double
        Dim registro As ResultSet=Main.SQL1.ExecQuery("Select id, latitud, longitud from coordenadas")
        Do While registro.NextRow
            latitud= registro.GetString("latitud")
            longitud=registro.GetString("longitud")
            M1  = gmap.AddMarker(latitud, longitud,"BACHE")
        Loop
        registro.Close
    Catch
        MsgboxAsync("Se produjo el error : "& LastException.Message,"Error")
    End Try
End Sub

Sub MapFragment1_Ready
    gmap = MapFragment1.GetMap   
    gmap.MyLocationEnabled = True
End Sub

Pero no puedo encontrar que estoy haciendo mal. Gracias
 

IdasI4A

Active Member
Licensed User
Longtime User
Me parece que te flata "mover la cámara" a la zona del mapa donsde tienes las marcas. Prueba con esto:
B4X:
#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    'Private rp As RuntimePermissions
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.

    Private MapFragment1 As MapFragment
    Private gmap As GoogleMap
    Dim M1 As Marker
    
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("mapa")
End Sub

Sub Activity_Resume
    Dim cp As CameraPosition ' <--- añadido
    Try
        Wait For gmap_Ready
        gmap = MapFragment1.GetMap
        Dim latitud As Double
        Dim longitud As Double
        Dim registro As ResultSet=Main.SQL1.ExecQuery("Select id, latitud, longitud from coordenadas")
        Do While registro.NextRow
            latitud= registro.GetString("latitud")
            longitud=registro.GetString("longitud")
            M1  = gmap.AddMarker(latitud, longitud,"BACHE")
        Loop
        registro.Close
        ' Y estas dos lineas'
        cp.Initialize(latitud, longitud,15)
        gmap.AnimateCamera(cp)       
    Catch
        MsgboxAsync("Se produjo el error : "& LastException.Message,"Error")
    End Try
End Sub

Sub MapFragment1_Ready
    gmap = MapFragment1.GetMap   
    gmap.MyLocationEnabled = True
End Sub
 

jgimenez

Member
Me parece que te flata "mover la cámara" a la zona del mapa donsde tienes las marcas. Prueba con esto:
B4X:
#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    'Private rp As RuntimePermissions
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.

    Private MapFragment1 As MapFragment
    Private gmap As GoogleMap
    Dim M1 As Marker
  
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("mapa")
End Sub

Sub Activity_Resume
    Dim cp As CameraPosition ' <--- añadido
    Try
        Wait For gmap_Ready
        gmap = MapFragment1.GetMap
        Dim latitud As Double
        Dim longitud As Double
        Dim registro As ResultSet=Main.SQL1.ExecQuery("Select id, latitud, longitud from coordenadas")
        Do While registro.NextRow
            latitud= registro.GetString("latitud")
            longitud=registro.GetString("longitud")
            M1  = gmap.AddMarker(latitud, longitud,"BACHE")
        Loop
        registro.Close
        ' Y estas dos lineas'
        cp.Initialize(latitud, longitud,15)
        gmap.AnimateCamera(cp)     
    Catch
        MsgboxAsync("Se produjo el error : "& LastException.Message,"Error")
    End Try
End Sub

Sub MapFragment1_Ready
    gmap = MapFragment1.GetMap 
    gmap.MyLocationEnabled = True
End Sub
Gracias por responder.
Si he probado eso también, pero siempre obtengo un mapa en blanco ...
En todos los ejemplos que bajé y probé del foro me hace lo mismo, no me da ningún error, pero me muestra en blanco el mapa
 
Last edited:

IdasI4A

Active Member
Licensed User
Longtime User
¿Puede ser que el problema esté en los valores de latitud y longitud? Si quieres puedes probar con: latitud=41.5690762 y longitud=-4.8381813
 

jgimenez

Member
Hola, gracias por responder, ya pude solucionar el problema. Me faltó habilitar el servicio Sdk de mapas en la plataforma de Google, al habilitar me generó una Api key y al colocar esta Api key ya me funciona todo.
 
Top