parseCampusMapBuildings function

List<CampusMapBuildingDto> parseCampusMapBuildings(
  1. 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,
      ),
];