Ajouté les lanes et un peu de doc

This commit is contained in:
leo 2022-02-06 21:42:50 +01:00
parent 0d2c54dbc6
commit 7f4c8b6e8b
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
4 changed files with 29 additions and 3 deletions

20
DOC.md Normal file
View File

@ -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

10
Map.py
View File

@ -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))

View File

@ -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 *

BIN
net_el.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 KiB