diff --git a/DOC.md b/DOC.md new file mode 100644 index 0000000..bfb705e --- /dev/null +++ b/DOC.md @@ -0,0 +1,20 @@ +# DOCUMENTATION + +## Reseau routier .net.xml de SUMO +[ref](https://sumo.dlr.de/docs/Networks/SUMO_Road_Networks.html) + +![Différents éléments composant le reseau routier](net_el.jpg "Elements d'un réseau") + +### Edge +Relie deux nodes, il possède un ID unique le décrivant et les deux ID des nodes composant ses extrémitées. +Il ne possède pas directement d'information concernant le tracé de la route, ces données sont fournis par les [lanes](#lane) +Un edge est considéré comme "interne" si il est inclus dans une jonction + +### Lane {#lane} +Comme le nom l'indique, decris une voie de la route. +Possède un ID et un index numéroté de droite à gauche, une vitesse maximale autorisé, une longueur. +Le tracé de la route est defini par la propriètée "shape" qui est composée d'une liste de position x,y + +### Junction/Node +Une jonction entre plusieurs routes. +Possède un ID, une position (x,y), une liste des voies qui s'y intersecte, une liste des voies internes qui la compose, un shape qui l'englobe diff --git a/Map.py b/Map.py index 318656a..9285473 100644 --- a/Map.py +++ b/Map.py @@ -11,10 +11,16 @@ class Map: self.surf=surface def fromPath(self,path : str): - self.net = sumolib.net.readNet(path) + self.net = sumolib.net.readNet(path,withInternal=True) def draw(self,screen): for edge in self.net.getEdges(): - pg.draw.line(self.surf,(255,255,255),edge.getFromNode().getCoord(),edge.getToNode().getCoord()) + color=(255,255,255) + if(edge.getFunction()=="internal"): + color=(255,0,0) + for lane in edge.getLanes(): + lastPos = None + pg.draw.lines(self.surf,color,False,lane.getShape()) + screen.blit(self.surf,(0,0)) diff --git a/main.py b/main.py index 167e4b7..a89b7d6 100644 --- a/main.py +++ b/main.py @@ -3,7 +3,7 @@ if 'SUMO_HOME' in os.environ: tools = os.path.join(os.environ['SUMO_HOME'], 'tools') sys.path.append(tools) else: - sys.exit("please declare environment variable 'SUMO_HOME'") + print("please declare environment variable 'SUMO_HOME'") import pygame as pg from pygame.locals import * diff --git a/net_el.jpg b/net_el.jpg new file mode 100644 index 0000000..3264400 Binary files /dev/null and b/net_el.jpg differ