getTemplateUrl method

  1. @override
String getTemplateUrl(
  1. Crs mapCrs,
  2. Coordinate? coordinate
)
override

Implementation

@override
// ignore: avoid_renaming_method_parameters
String getTemplateUrl(Crs mapCrs, Coordinate? coordinate) {
  final crs = this.crs ?? mapCrs;
  final tileWidth = tileSize.width.toInt();
  final tileHeight = tileSize.height.toInt();
  final tileSizePoint = UPoint(
    tileWidth.toDouble(),
    tileHeight.toDouble(),
  );

  final nwPoint = coordinate!.scaleBy(tileSizePoint);
  final sePoint = nwPoint + tileSizePoint;

  final nwLatLng = crs.pointToLatLng(UPoint.from(nwPoint), coordinate.z);
  final seLatLng = crs.pointToLatLng(UPoint.from(sePoint), coordinate.z);

  final nw = crs.project(nwLatLng);
  final se = crs.project(seLatLng);

  final bounds = Bounds(nw, se);

  final bbox = (versionNumber >= 1.3 && crs is Epsg4326)
      ? [bounds.min.y, bounds.min.x, bounds.max.y, bounds.max.x]
      : [bounds.min.x, bounds.min.y, bounds.max.x, bounds.max.y];

  final buffer = StringBuffer(_baseUrl(crs));

  buffer.write('&$paramWidth=${isRetinaMode ? tileWidth * 2 : tileWidth}');
  buffer.write('&$paramHeight=${isRetinaMode ? tileHeight * 2 : tileHeight}');
  buffer.write('&$paramBbox=${bbox.join(',')}');

  return buffer.toString();
}