public static MapProviderController Create(MapDefinition mapDefinition) { var providers = new List <MapTypeProvider>(MapProviderController.CreateProviders(mapDefinition)); foreach (var way in mapDefinition.ReadWays()) { var provider = providers.FirstOrDefault(p => p.IsMatch(way)); if (null != provider) { provider.Add(way); } } return(new MapProviderController(mapDefinition, providers)); }