Definition at line 21 of file SUMOSAXHandler.java.
Public Member Functions | |
| double | getCar4carEquippedPropbaility () |
| void | setCar4carEquippedPropability (double car4carEquippedPropbaility) |
| void | setJitter (int jitter) |
| void | setListener (SUMOLocationListener listener) |
| void | setResolver (SUMOGeoCoordinatesResolver resolver) |
| void | startDocument () |
| void | startElement (String uri, String localName, String qName, Attributes attributes) throws SAXException |
| SUMOSAXHandler (String netfilename) | |
Private Member Functions | |
| void | handleVehicle () |
Private Attributes | |
| double | car4carEquippedPropbaility = 0.01 |
| String | edgeId |
| int | jitter = 0 |
| Set< String > | knownVehicles = new HashSet<String>() |
| String | laneId |
| SUMOLocationListener | listener |
| double | pos |
| SUMOGeoCoordinatesResolver | resolver |
| double | speed |
| long | startTime |
| int | timestep |
| Set< String > | trackedVehicles = new HashSet<String>() |
| String | vehicleId |
| de::psi::telco::sumoplayer::SUMOSAXHandler::SUMOSAXHandler | ( | String | netfilename | ) | [inline] |
Definition at line 46 of file SUMOSAXHandler.java.
References resolver.
00046 { 00047 this.resolver = new SUMOGeoCoordinatesResolver(netfilename); 00048 }
| double de::psi::telco::sumoplayer::SUMOSAXHandler::getCar4carEquippedPropbaility | ( | ) | [inline] |
Definition at line 111 of file SUMOSAXHandler.java.
References car4carEquippedPropbaility.
00111 { 00112 return car4carEquippedPropbaility; 00113 }
| void de::psi::telco::sumoplayer::SUMOSAXHandler::handleVehicle | ( | ) | [inline, private] |
Definition at line 81 of file SUMOSAXHandler.java.
References car4carEquippedPropbaility, edgeId, de::psi::telco::sumoplayer::util::Point::getX(), de::psi::telco::sumoplayer::util::Point::getY(), jitter, knownVehicles, laneId, listener, de::psi::telco::sumoplayer::SUMOLocationListener::LocationUpdated(), pos, de::psi::telco::sumoplayer::SUMOGeoCoordinatesResolver::resolv(), resolver, speed, timestep, trackedVehicles, and vehicleId.
Referenced by startElement().
00081 { 00082 if (trackedVehicles.size() == 0){ // add first vehicle anyway for simulations whith only one vehicle 00083 knownVehicles.add(vehicleId); 00084 trackedVehicles.add(vehicleId); 00085 }else{ // add vehicles probabilistic 00086 if (!knownVehicles.contains(vehicleId)){ // check if vehicle is already known 00087 00088 knownVehicles.add(vehicleId); // then add it as known 00089 if (car4carEquippedPropbaility > Math.random()){ // and calculate propability 00090 trackedVehicles.add(vehicleId); // ... to add it 00091 } 00092 } 00093 } 00094 00095 if (trackedVehicles.contains(vehicleId)){ // handle a tracked vehicle only 00096 // calculate geo position 00097 Point p = resolver.resolv(edgeId, laneId, pos); 00098 00099 // calculate jitter if required 00100 if (jitter > 0){ 00101 double jitterLon = GeoCalc.getLonOffset(p.getX(), p.getY(), jitter)*((Math.random()*2)-1); 00102 double jitterLat = GeoCalc.getLatOffset(p.getX(), p.getY(), jitter)*((Math.random()*2)-1); 00103 p = new PointImpl(p.getX()+jitterLon,p.getY()+jitterLat); 00104 } 00105 00106 // call the listener 00107 this.listener.LocationUpdated(vehicleId, timestep, p.getX(), p.getY(), speed*3.6); 00108 } 00109 }
| void de::psi::telco::sumoplayer::SUMOSAXHandler::setCar4carEquippedPropability | ( | double | car4carEquippedPropbaility | ) | [inline] |
Definition at line 115 of file SUMOSAXHandler.java.
Referenced by de::psi::telco::sumoplayer::SUMOPlayer::init().
00115 { 00116 this.car4carEquippedPropbaility = car4carEquippedPropbaility; 00117 }
| void de::psi::telco::sumoplayer::SUMOSAXHandler::setJitter | ( | int | jitter | ) | [inline] |
This function sets the GPS jitter in meters
| jitter |
Definition at line 131 of file SUMOSAXHandler.java.
Referenced by de::psi::telco::sumoplayer::SUMOPlayer::init().
| void de::psi::telco::sumoplayer::SUMOSAXHandler::setListener | ( | SUMOLocationListener | listener | ) | [inline] |
Definition at line 119 of file SUMOSAXHandler.java.
Referenced by de::psi::telco::sumoplayer::SUMOPlayer::init().
| void de::psi::telco::sumoplayer::SUMOSAXHandler::setResolver | ( | SUMOGeoCoordinatesResolver | resolver | ) | [inline] |
| void de::psi::telco::sumoplayer::SUMOSAXHandler::startDocument | ( | ) | [inline] |
Definition at line 50 of file SUMOSAXHandler.java.
References startTime.
00050 { 00051 startTime = System.currentTimeMillis(); 00052 }
| void de::psi::telco::sumoplayer::SUMOSAXHandler::startElement | ( | String | uri, | |
| String | localName, | |||
| String | qName, | |||
| Attributes | attributes | |||
| ) | throws SAXException [inline] |
Definition at line 54 of file SUMOSAXHandler.java.
References edgeId, handleVehicle(), laneId, pos, speed, startTime, timestep, and vehicleId.
00054 { 00055 if (qName.equals("timestep")){ 00056 timestep = Integer.parseInt(attributes.getValue("time")); 00057 00058 long timeToBe = startTime + timestep*1000; // dirty realtime trick 00059 long now = System.currentTimeMillis(); 00060 try { 00061 if (timeToBe-now>0){ 00062 Thread.sleep(timeToBe-now); 00063 } 00064 } catch (InterruptedException e) { 00065 // TODO Auto-generated catch block 00066 e.printStackTrace(); 00067 } 00068 }else if(qName.equals("edge")){ 00069 edgeId = attributes.getValue("id"); 00070 }else if(qName.equals("lane")){ 00071 laneId = attributes.getValue("id"); 00072 }else if(qName.equals("vehicle")){ 00073 vehicleId = attributes.getValue("id"); 00074 pos = Double.parseDouble(attributes.getValue("pos")); 00075 speed = Double.parseDouble(attributes.getValue("speed")); 00076 00077 handleVehicle(); 00078 } 00079 }
double de::psi::telco::sumoplayer::SUMOSAXHandler::car4carEquippedPropbaility = 0.01 [private] |
The given propability which decides which cars are beeing tracked 0 means no vehicles 1 means all vehicles. anything else between.
Definition at line 27 of file SUMOSAXHandler.java.
Referenced by getCar4carEquippedPropbaility(), and handleVehicle().
String de::psi::telco::sumoplayer::SUMOSAXHandler::edgeId [private] |
Definition at line 36 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and startElement().
int de::psi::telco::sumoplayer::SUMOSAXHandler::jitter = 0 [private] |
Set<String> de::psi::telco::sumoplayer::SUMOSAXHandler::knownVehicles = new HashSet<String>() [private] |
String de::psi::telco::sumoplayer::SUMOSAXHandler::laneId [private] |
Definition at line 37 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and startElement().
double de::psi::telco::sumoplayer::SUMOSAXHandler::pos [private] |
Definition at line 40 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and startElement().
Definition at line 44 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and SUMOSAXHandler().
double de::psi::telco::sumoplayer::SUMOSAXHandler::speed [private] |
Definition at line 41 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and startElement().
long de::psi::telco::sumoplayer::SUMOSAXHandler::startTime [private] |
Definition at line 34 of file SUMOSAXHandler.java.
Referenced by startDocument(), and startElement().
int de::psi::telco::sumoplayer::SUMOSAXHandler::timestep [private] |
Definition at line 33 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and startElement().
Set<String> de::psi::telco::sumoplayer::SUMOSAXHandler::trackedVehicles = new HashSet<String>() [private] |
String de::psi::telco::sumoplayer::SUMOSAXHandler::vehicleId [private] |
Definition at line 39 of file SUMOSAXHandler.java.
Referenced by handleVehicle(), and startElement().
1.5.6