encodePolyline static method

String encodePolyline(
  1. List<LatLngModel> points
)

Implementation

static String encodePolyline(List<LatLngModel> points) {
  StringBuffer encoded = StringBuffer();
  int lastLat = 0;
  int lastLng = 0;

  // Recorrer cada punto en la lista
  for (var point in points) {
    // Convertir las coordenadas a enteros multiplicándolas por 1E5 y redondearlas
    int lat = (point.latitude * 1E5).round();
    int lng = (point.longitude * 1E5).round();

    // Calcular el delta entre el punto actual y el último punto
    int dLat = lat - lastLat;
    int dLng = lng - lastLng;

    // Codificar los deltas y agregarlos a la cadena codificada
    encoded.write(_encodeValue(dLat));
    encoded.write(_encodeValue(dLng));

    // Actualizar los últimos valores de latitud y longitud
    lastLat = lat;
    lastLng = lng;
  }

  // Devolver la cadena codificada completa
  return encoded.toString();
}