Buenas, tengo una duda a ver si alguien puede ayudarme. He actualizado una Aplicación que usaba google maps, y ahora tengo un problema .
El mapa funciona perfectamente, pero en mi aplicación puedo :
1º Poner un icono de un coche en mi ubicación actual y guardar en una base de dato dicha ubicación.
2º Ir guardando ubicaciones conforme yo quiera, y añadirle un titulo para luego recuperarla de una SQL.
para estas 2 cosas uso 2 botones que voy a pegar a continuación. siempre funciono pero ahora no, SI guardo coche y luego muestro ubicaciones funciona. Si muestro ubicaciones a secas, sin guardar coche me da error, pego a continuación.
Si uso primero este botón, luego al usar el de Ubicaciones , no da error
BOTON UBICACIONES , si lo pulso antes que el botón del coche me da el siguiente error. (con este mostraría todas las ubicaciones (coche y marcadores)
Código del Boton:
ERROR
El mapa funciona perfectamente, pero en mi aplicación puedo :
1º Poner un icono de un coche en mi ubicación actual y guardar en una base de dato dicha ubicación.
2º Ir guardando ubicaciones conforme yo quiera, y añadirle un titulo para luego recuperarla de una SQL.
para estas 2 cosas uso 2 botones que voy a pegar a continuación. siempre funciono pero ahora no, SI guardo coche y luego muestro ubicaciones funciona. Si muestro ubicaciones a secas, sin guardar coche me da error, pego a continuación.
Si uso primero este botón, luego al usar el de Ubicaciones , no da error
B4X:
If latitud = "0" And Longitud = "0" Then
MsgboxAsync("No se puede comprobar la Ubicación ahora mismo, espere a que se sincronicen los Satélites (Icono de Satélite en Verde)","Atención")
Else
'*********** guardamos la ubicación actual y mostramos el coche ***************
'con esto actualizamos el campo que contiene la id=1 de la tabla coche con la longitud y latitud en las que nos encontramos
sql1.ExecNonQuery("UPDATE coche set latitud ='"& latitud &"', longitud = '" & Longitud & "' WHERE id = 1")
'Con esto leemos la tabla y añadimos el dibujo del coche
Dim cursor1 As Cursor
Dim value As String = "1"
'saco los datos donde id = 1
cursor1 = sql1.ExecQuery("SELECT latitud,longitud FROM coche WHERE id='" & value & "'")
For i = 0 To cursor1.RowCount - 1
cursor1.Position = i
Next
Marcadores_4x4.Initialize
For Each marcador As Marker In Marcadores_4x4
marcador.remove
Next
'Aquí añadiría la ubicación nueva.
Dim m1 As Marker = gmap.AddMarker3(cursor1.GetString("latitud"),cursor1.GetString("longitud"),"COCHE",LoadBitmap(File.DirAssets, "4X4.png"))
Marcadores_4x4.Add(m1)
End If
BOTON UBICACIONES , si lo pulso antes que el botón del coche me da el siguiente error. (con este mostraría todas las ubicaciones (coche y marcadores)
Código del Boton:
Mostrar Ubicaciones:
If File.Exists(File.DirDefaultExternal,"cetreros.sql") = False Then
File.Copy(File.DirAssets,"cetreros.sql",File.DirDefaultExternal,"cetreros.sql")
End If
If Starter.sql.IsInitialized = False Then
Starter.sql.Initialize(File.DirDefaultExternal, "cetreros.sql", False)
End If
Dim Unmarcador () As String
lstMarcadores.Initialize
lstMarcadores = DBUtils.ExecuteMemoryTable(Starter.sql, "SELECT * FROM coordenadas", Null,0) ' Asi coje todas las columnas de coordenadas y mete la 1º en (0) , la 2º en (1) , etc.
For intMarcador = 0 To lstMarcadores.Size -1'Recorre cada elemento de la Lista
Unmarcador = lstMarcadores.Get(intMarcador) 'Extrae un marcador de la Lista
Dim m1 As Marker = gmap.AddMarker2(Unmarcador(0), Unmarcador(1), Unmarcador(2), gmap.HUE_ORANGE)
m1.Snippet = Unmarcador(3) ' con esto añado texto bajo el nombre de la chincheta, que lo guardo en la variable (3)
Next
Dim cursor1 As Cursor
Dim value As String = "1"
cursor1 = sql1.ExecQuery("SELECT latitud,longitud FROM coche WHERE id='" & value & "'")
For i = 0 To cursor1.RowCount - 1
cursor1.Position = i
Next
Dim m1 As Marker = gmap.AddMarker3(cursor1.GetString("latitud"),cursor1.GetString("longitud"),"COCHE",LoadBitmap(File.DirAssets, "4X4.png"))
Marcadores_4x4.Add(m1)
ERROR
B4X:
googlemaps_bt_mostrarcoordenadas_click (java line: 737)
java.lang.RuntimeException: Object should first be initialized (List).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
at anywheresoftware.b4a.objects.collections.List.Add(List.java:83)
at com.Fjo.DiarioCetrero.googlemaps._bt_mostrarcoordenadas_click(googlemaps.java:737)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.BA$1.run(BA.java:352)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:226)
at android.app.ActivityThread.main(ActivityThread.java:7592)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)