Yo lo que haría sería lo siguiente, el Layout sería el spinner arriba del todo, y abajo un fragment donde irá el mapa de google.
Crearía una clase llamada markers, que guardará posicion x e y, es decir, las coordenadas del marker, un titulo o lo que quieras guardar de más.
Tambien tendría una clase llamada rutas, con todos los datos que la ruta necesita y dentro de los atributos, un array de markers.
Es decir, tendría un array de markers que traería de mi base de datos al iniciar la app, o de donde sea, y un array de rutas a la cual le asignaría cada array de markers (posiciones por donde pasará la ruta.)
Cuando en el spinner selecciones una ruta, solo tienes que limpiar el mapa y acto seguido cargar cada marker del array que tenga la ruta.
Todo esto para android nativo. Sin embargo yo un día usé un webview, donde cargaba una página que tenia un script de javascript de google maps, en ese script cargaba un archivo JSON que tenía todas las paradas de la ruta desde el punto A hasta el B. Solo generaba el archivo JSON en android y llamaba a http://miservidor,com/mimapa.php?id=idruta
Donde id ruta es el archivo generado y subido al servidor, y automáticamente se me cargaba todo, sin ser nativo funcionaba correctamente.