optics method

List<LatLng> optics(
  1. List<LatLng> points
)

Implementation

List<LatLng> optics(List<LatLng> points) {
  final List<LatLng> orderedList = [];
  final Set<LatLng> visited = {};
  final Map<LatLng, double> reachabilityDist = {};

  for (final point in points) {
    if (visited.contains(point)) continue;
    visited.add(point);

    final neighbors = _regionQuery(point, points);
    if (neighbors.length < minPts) {
      reachabilityDist[point] = double.infinity; // Mark as noise
    } else {
      _expandClusterOrder(point, neighbors, orderedList, visited, reachabilityDist, points);
    }
  }
  return orderedList;
}