queryRenderedFeatures method

  1. @override
Future<List> queryRenderedFeatures(
  1. Point<double> point,
  2. List<String> layerIds,
  3. List<Object>? filter
)
override

Implementation

@override
Future<List> queryRenderedFeatures(
    Point<double> point, List<String> layerIds, List<Object>? filter) async {
  Map<String, dynamic> options = {};
  if (layerIds.length > 0) {
    options['layers'] = layerIds;
  }
  if (filter != null) {
    options['filter'] = filter;
  }

  // avoid issues with the js point type
  final pointAsList = [point.x, point.y];
  return _map
      .queryRenderedFeatures([pointAsList, pointAsList], options)
      .map((feature) => {
            'type': 'Feature',
            'id': feature.id,
            'geometry': {
              'type': feature.geometry.type,
              'coordinates': feature.geometry.coordinates,
            },
            'properties': feature.properties,
            'source': feature.source,
          })
      .toList();
}