Here streaming meant to load data on-the-fly while the game is running, this is common practise in most modern games.
what do you mean by stream
Streaming should be done asynchronously, that is, load and prepare the data in a second thread and activate it , once the loading/postprocessing is done. Best to use some kind of cache (i.e. LRU) to hold only a meaningful number of city blocks in memory.
You should hold at least two navigation grid/map levels. The first level is a low resolution, whole game , map which connects city blocks and is always in memory. This helps if npcs needs to travel from city block to city block even when a city block is not loaded yet. The hi-resolution map will be loaded with the city block, once it has been loaded, you need to connect it with adjacent loaded city blocks, but this should not be a problem.