Spanish GoogleMapsExtras, polyline y edificios

Cebuvi

Active Member
Licensed User
Longtime User
Desde hace unas semanas me ha empezado a dar error la rutina AddPolyline

Public Sub AddPolyline(PointList As List) As Object
Dim polylineOptions As JavaObject
polylineOptions.InitializeNewInstance("com.google.android.gms.maps.model.PolylineOptions", Null)

' Set polyline options
polylineOptions.SetField("add", PointList)
polylineOptions.SetField("color", 0xFF0000FF) ' Blue color
polylineOptions.SetField("width", 6)
polylineOptions.SetField("visible", True)
polylineOptions.SetField("zIndex", 3)


' Add polyline to map
Return GoogleMaps1.As(JavaObject).RunMethod("addPolyline", Array(polylineOptions))
End Sub
El error se produce en la linea polylineOptions.setField("add", PointList) y es el siguiente:
java.lang.RuntimeException: Field: add not found in: com.google.android.gms.maps.model.PolylineOptions
No entiendo donde puede estar el problema porque no he cambiado en la app.
 

TILogistic

Expert
Licensed User
Longtime User
Desde hace unas semanas me ha empezado a dar error la rutina AddPolyline


El error se produce en la linea polylineOptions.setField("add", PointList) y es el siguiente:

No entiendo donde puede estar el problema porque no he cambiado en la app.
Use googlemaps extra es mejor. y javaobject para otros métodos que no tiene el googlemaps extras.

googlemapsextras
B4X:
    Dim PointArray() As Double = Array As Double(-33.43989601789823,-70.65526217222214,-33.43965764843931,-70.65263394266367,-33.43929981324512,-70.64977671951054,-33.438989539000985,-70.64609136432408,-33.43629382743502,-70.64591970294714)
    Dim PointList As List :    PointList.Initialize
    
    For i = 0 To PointArray.Length - 1 Step 2
        Dim LatLng1 As LatLng
        LatLng1.Initialize(PointArray(i),PointArray(i+1))
        PointList.Add(LatLng1)
    Next
    
    Dim PolylineOptions1 As PolylineOptions
    PolylineOptions1.Initialize
    PolylineOptions1.AddPoints(PointList)
    PolylineOptions1.Color = xui.Color_Red
    PolylineOptions1.Width = 6
    PolylineOptions1.Visible = True
    PolylineOptions1.ZIndex = 3
    
    Dim Polyline1 As Polyline
    Polyline1 = GoogleMapsExtras1.AddPolyline(GoogleMap1, PolylineOptions1)
 

TILogistic

Expert
Licensed User
Longtime User
Desde hace unas semanas me ha empezado a dar error la rutina AddPolyline


El error se produce en la linea polylineOptions.setField("add", PointList) y es el siguiente:

No entiendo donde puede estar el problema porque no he cambiado en la app.
Prueba:
B4X:
Sub AddPolyline(points As List, color As Int, width As Int, clickable As Boolean, visible As Boolean, zIndex As Float) As JavaObject
    Dim polylineOptions As JavaObject
    polylineOptions.InitializeNewInstance("com.google.android.gms.maps.model.PolylineOptions", Null)
    For Each p As JavaObject In points
        polylineOptions.RunMethod("add", Array(p))
    Next
    polylineOptions.RunMethod("color", Array(color))
    polylineOptions.RunMethod("width", Array(width))
    polylineOptions.RunMethod("clickable", Array(clickable))
    polylineOptions.RunMethod("visible", Array(visible))
    polylineOptions.RunMethod("zIndex", Array(zIndex))
    Dim polyline As JavaObject = GoogleMaps1.As(JavaObject).RunMethod("addPolyline", Array(polylineOptions))
    Return polyline
End Sub

ver ejemplo: como activar el listener de click (Shape o Objeto).

Nota:
La instancia es la misma del ejemplo, solo que reemplaza los / por .
opt.InitializeNewInstance("com/google/android/gms/maps/model/CircleOptions".Replace("/", "."), Null)
 
Last edited:

Cebuvi

Active Member
Licensed User
Longtime User
La nueva rutina AddPolyline funciona perfectamente, pero la variable width tiene que ser de tipo Float.

Muchas gracias
 
Top