getForLatLon method

  1. @override
HgtFile getForLatLon(
  1. double latitude,
  2. double longitude
)
override

Implementation

@override
HgtFile getForLatLon(double latitude, double longitude) {
  final NoaaFileDefinition noaaFileDefinition = NoaaFileDefinition.sourceTileFor(latitude, longitude);

  final cached = _cache[noaaFileDefinition.fileName];
  if (cached != null) {
    return cached;
  }

  final file = File('$directoryPath${Platform.pathSeparator}${noaaFileDefinition.fileName}');

  final hgt = HgtFile.readFromFile(
    file,
    baseLat: noaaFileDefinition.latMin.round(),
    baseLon: noaaFileDefinition.lonMin.round(),
    tileWidth: noaaFileDefinition.width.round(),
    tileHeight: noaaFileDefinition.height.round(),
    rows: noaaFileDefinition.rows,
  );
  _cache[noaaFileDefinition.fileName] = hgt;

  while (_cache.length > 4) {
    _cache.remove(_cache.keys.first);
  }

  return hgt;
}