sounds to me like you need an list of city blocks.
These would be cells, each cell has a link to the 8 cells around it as well as references to any models in that cell.

You'd be able to choose any of the cells and only render the models etc that can be seen from that cell and it's neighbors.

So in your situation, you have a 8x8 grid of cells. from 0 - 7

if you were to pick on cell 3x3 = cell #27 (3 * +3

Code:
[18][19][20]
[26]    [28]
[34][35][36]
and Cell 4x3 would be

Code:
[19][20][21]
[27]    [29]
[35][36][37]
So you render your current cell and then any neighbors which haven't already been rendered using a recursive algorithm.

Using this mechanism, you can have extremely large maps, streamed off a disk or even an online source. Loading and unloading cells as needed because each cell knows what it's neighbors are, you don't have to keep all locations loaded in memory, you can get them when they're needed.