regionForLoc method
RegionFeature?
regionForLoc(
- double lon,
- double lat, {
- RegionLevel? level,
- RegionLevel? maxLevel,
- RegionProperties? withProp,
Returns the feature containing loc
for the opts
, if any.
Implementation
RegionFeature? regionForLoc(double lon, double lat,
{RegionLevel? level, RegionLevel? maxLevel, RegionProperties? withProp}) {
final targetLevel = level ?? RegionLevel.country;
maxLevel ??= RegionLevel.world;
if (maxLevel.index < targetLevel.index) return null;
if (targetLevel == RegionLevel.country) {
// attempt fast path for country-level coding
final fastRegion = countryRegion(lon, lat);
if (fastRegion != null && fastRegion.hasProperty(withProp)) {
return fastRegion;
}
}
final regions = regionsContaining(lon: lon, lat: lat);
for (final region in regions) {
if (region.level == targetLevel ||
(region.level.index > targetLevel.index &&
region.level.index <= maxLevel.index)) {
if (region.hasProperty(withProp)) return region;
}
}
return null;
}