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

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
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…