Ajouté les lanes et un peu de doc
This commit is contained in:
parent
0d2c54dbc6
commit
7f4c8b6e8b
20
DOC.md
Normal file
20
DOC.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# DOCUMENTATION
|
||||||
|
|
||||||
|
## Reseau routier .net.xml de SUMO
|
||||||
|
[ref](https://sumo.dlr.de/docs/Networks/SUMO_Road_Networks.html)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 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
10
Map.py
@ -11,10 +11,16 @@ class Map:
|
|||||||
self.surf=surface
|
self.surf=surface
|
||||||
|
|
||||||
def fromPath(self,path : str):
|
def fromPath(self,path : str):
|
||||||
self.net = sumolib.net.readNet(path)
|
self.net = sumolib.net.readNet(path,withInternal=True)
|
||||||
|
|
||||||
def draw(self,screen):
|
def draw(self,screen):
|
||||||
for edge in self.net.getEdges():
|
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))
|
screen.blit(self.surf,(0,0))
|
||||||
|
|
||||||
|
2
main.py
2
main.py
@ -3,7 +3,7 @@ if 'SUMO_HOME' in os.environ:
|
|||||||
tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
|
tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
|
||||||
sys.path.append(tools)
|
sys.path.append(tools)
|
||||||
else:
|
else:
|
||||||
sys.exit("please declare environment variable 'SUMO_HOME'")
|
print("please declare environment variable 'SUMO_HOME'")
|
||||||
|
|
||||||
import pygame as pg
|
import pygame as pg
|
||||||
from pygame.locals import *
|
from pygame.locals import *
|
||||||
|
BIN
net_el.jpg
Normal file
BIN
net_el.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 824 KiB |
Loading…
x
Reference in New Issue
Block a user