generateReplacementMap method

  1. @visibleForOverriding
Map<String, String> generateReplacementMap(
  1. String urlTemplate,
  2. TileCoordinates coordinates,
  3. TileLayer options
)

Generate the Map of placeholders to replacements, to be used in populateTemplatePlaceholders

Instead of overriding this directly, consider using TileLayer.additionalOptions to inject additional placeholders.


When creating a specialized TileProvider, prefer overriding URL generation related methods in the following order:

  1. populateTemplatePlaceholders
  2. generateReplacementMap
  3. getTileUrl and/or getTileFallbackUrl

Note to implementors: it is not safe to assume that at least one of wmsOptions or urlTemplate will be non-null.

Implementation

@visibleForOverriding
Map<String, String> generateReplacementMap(
  String urlTemplate,
  TileCoordinates coordinates,
  TileLayer options,
) {
  final zoom = (options.zoomOffset +
          (options.zoomReverse
              ? options.maxZoom - coordinates.z.toDouble()
              : coordinates.z.toDouble()))
      .round();

  return {
    'x': coordinates.x.toString(),
    'y': (options.tms ? ((1 << zoom) - 1) - coordinates.y : coordinates.y)
        .toString(),
    'z': zoom.toString(),
    's': options.subdomains.isEmpty
        ? ''
        : options.subdomains[
            (coordinates.x + coordinates.y) % options.subdomains.length],
    'r': options.resolvedRetinaMode == RetinaMode.server ? '@2x' : '',
    'd': options.tileSize.toString(),
    ...options.additionalOptions,
  };
}