def getGates(): global trackStations,trackCoordinates counter = 0 coordinationsStr = "" coordinates = [] stationLoc = [] DOMTree = xml.dom.minidom.parse('/Users/Hossein/Downloads/bart.kml') collection = DOMTree.documentElement folders = collection.getElementsByTagName("Folder") print "Gates in Track: " for folder in folders: folderName = folder.getElementsByTagName('name')[0].childNodes[0].data if folderName == "BART Stations": placeMarks = folder.getElementsByTagName("Placemark") for placeMark in placeMarks: coordinationsStr = placeMark.getElementsByTagName("coordinates")[0].childNodes[0].data coordinationsStr = coordinationsStr.replace(',0','') coordinates = coordinationsStr.split(',') stationName = placeMark.getElementsByTagName("name")[0].childNodes[0].data stationLat = float(coordinates[1]) stationLon = float(coordinates[0]) stationLoc = [stationLat,stationLon] loc = utility.getTraveledDistance(trackCoordinates,stationLoc) if utility.inTrack(trackCoordinates,stationLoc,300): counter+=1 gate = Gate.Gate(stationName, stationLat,stationLon,True,loc,counter) gateList.append(gate) print "\t"+gate.__str__()
#============================================================================================================== # Main Program: #============================================================================================================== mymap = pygmaps.maps(37.7016, -121.9003, 16) getSegments() getGates() totalDistance = 0 for gate in gateList: if gate.getGateStatStr() == 'open': mymap.addpoint(gate.getGateLat(),gate.getGateLon(), gate.getName(), utility.getColorCode("green")) else: mymap.addpoint(gate.getGateLat(),gate.getGateLon(),gate.getGatename(), utility.getColorCode("red")) print "Number of segments: " + str(len(segmentList)) for seg in segmentList: dBegin = utility.getTraveledDistance(trackCoordinates,seg.getStartPoint()) dEnd = utility.getTraveledDistance(trackCoordinates,seg.getEndPoint()) print "\tSegment: " + seg.getSegName() + " starts at " + str(dBegin/1000) + "km and ends in " + str(dEnd/1000) + "km ---> Segment length:" + str(seg.getSegmentLength()) initialPos1 = utility.getPointAtDistanceInPath(trackCoordinates,30) train1 = Train.train(initialPos1,0,2,1,segmentList,trackCoordinates,gateList) trainList.append(train1) initialPos2 = utility.getPointAtDistanceInPath(trackCoordinates,50) train2 = Train.train(initialPos2,0,2,2,segmentList,trackCoordinates,gateList) trainList.append(train2) stationComputer = StationComputer.StationComputer(trainList,segmentList,trackCoordinates,gateList) mymap.addTrain(initialPos1[0], initialPos1[1], 1) mymap.addTrain(initialPos2[0], initialPos2[1], 2) mymap.draw('./mymap.html') #train.nextSegmentsInRange(10)