getBoundsForFeatureSet method

LatLngBounds? getBoundsForFeatureSet()

Implementation

LatLngBounds? getBoundsForFeatureSet() {
  List<LatLng> latLngs = [];

  for (Polygon element in polygons) {
    for (LatLng latlng in element.points) {
      latLngs.add(latlng);
    }
  }
  for (Polyline element in polylines) {
    for (LatLng latlng in element.points) {
      latLngs.add(latlng);
    }
  }
  for (Marker element in markers) {
    latLngs.add(element.position);
  }

  if (latLngs.isNotEmpty) {
    final southwestLat = latLngs.map((p) => p.latitude).reduce(
            (value, element) => value < element ? value : element); // smallest
    final southwestLon = latLngs
        .map((p) => p.longitude)
        .reduce((value, element) => value < element ? value : element);
    final northeastLat = latLngs.map((p) => p.latitude).reduce(
            (value, element) => value > element ? value : element); // biggest
    final northeastLon = latLngs
        .map((p) => p.longitude)
        .reduce((value, element) => value > element ? value : element);


    return LatLngBounds(
        southwest: LatLng(southwestLat, southwestLon),
        northeast: LatLng(northeastLat, northeastLon)
    );

  }
  return null;
}