matchNode method

List<Shape> matchNode(
  1. Tile tile,
  2. NodeProperties nodeProperties
)

Matches a node with the given parameters against this RenderTheme.

@param renderCallback the callback implementation which will be executed on each match. @param renderContext @param poi the point of interest.

Implementation

List<Shape> matchNode(final Tile tile, NodeProperties nodeProperties) {
  MatchingCacheKey matchingCacheKey =
      MatchingCacheKey(nodeProperties.tags, tile.zoomLevel, tile.indoorLevel);

  List<Shape>? matchingList = this.poiMatchingCache[matchingCacheKey];
  if (matchingList == null) {
    // build cache
    matchingList = [];

    rulesList.forEach((element) {
      element.matchNode(tile, matchingList!, nodeProperties);
    });
    this.poiMatchingCache[matchingCacheKey] = matchingList;
  }
  return matchingList;
}