getForLatLon method
Implementation
@override
HgtFile getForLatLon(double latitude, double longitude) {
final baseLat = (latitude / step).floor() * step;
final baseLon = (longitude / step).floor() * step;
final filename = buildFilename(baseLat: baseLat, baseLon: baseLon);
final cached = _cache[filename];
if (cached != null) {
return cached;
}
HgtFile? hgt = _missingFiles.get(filename);
if (hgt != null) {
return hgt;
}
final file = File('$directoryPath${Platform.pathSeparator}$filename');
hgt = HgtFile.readFromFile(file, baseLat: baseLat, baseLon: baseLon, tileWidth: step, tileHeight: step, rows: columnsPerDegree * step);
_cache[filename] = hgt;
if (hgt.rows == 0) {
// missing
_missingFiles.set(filename, hgt);
}
while (_cache.length > maxEntries) {
_cache.remove(_cache.keys.first);
}
return hgt;
}