parseCampusMapBuildings function
- String source
Parses building names, codes, and all GeoJSON polygon rings.
Outlines with missing codes are retained by feature ID. Features without polygon geometry are ignored. Malformed supported geometry throws FormatException rather than replacing a valid cache with partial data.
Implementation
List<CampusMapBuildingDto> parseCampusMapBuildings(String source) => [
for (final feature in _features(source))
if (_geometry(feature['geometry']) case final polygons
when polygons.isNotEmpty)
(
id: feature['id'] as String,
code: _text(feature['properties'] as Map<String, dynamic>, 'build_id'),
name: _text(
feature['properties'] as Map<String, dynamic>,
'build_name',
),
polygons: polygons,
),
];