Sssss... Hmm...
Francamente esto se debería hacer con grafos... Pero, claro, antes tendrías que aprender qué son los grafos, cómo se usan, volverte bueno programando con ellos y recién después, ponerte a hacer tu programa de mapa de calles...
La alternativa que se me ocurre (que es bastante mala, pero ando flojo de neuroas hoy
) es la siguiente:
¡WARNING! Stupid ideas from this point on.
Tendrías todas las intersecciones entre TODAS las calles posibles, es decir, todas las esquinas guardadas en una base de datos o lo que fuera.
Después tendrías una matriz TRIDIMENSIONAL (
) gigante (realmente monstruosa). En una dimensión tendrías calles "verticales", en la otra "horizontales" y en la otra una estructura con la altura de ambas calles en esa intersección...
Creo que esa es una opción. Bastante "loca", pero opción al fin. Quizás tengas que esperar a que alguien más cuerdo te alguna otra idea...
Saludongos.