| | |
| | | int laneDirect = 0; |
| | | |
| | | if (CurrentLane.lane > lane.lane) { |
| | | laneDirect = 1; |
| | | } else { |
| | | laneDirect = -1; |
| | | } else { |
| | | laneDirect = 1; |
| | | } |
| | | |
| | | if (diff < CHANGE_LANE_MIN_INTERVAL && laneDirect == changeLaneDirect) { |
| | | DEBUG("===================== 连续变道 ============!!"); |
| | | DEBUG("===================== 连续变道 %d -> %d ============", CurrentLane.lane, lane.lane); |
| | | // 连续变道,不合格 |
| | | AddExamFault(15, rtkTime); |
| | | } |
| | |
| | | } |
| | | } else { |
| | | // 变道完成 |
| | | DEBUG("变道完成"); |
| | | DEBUG("变道完成 %d -> %d", CurrentLane.lane, lane.lane); |
| | | |
| | | if (currRoadItem != NULL && currRoadItem->active == ROAD_ITEM_CHANGE_LANE) { |
| | | DEBUG("变更车道项目完成"); |
| | |
| | | } |
| | | } |
| | | // 人行道、公交站刹车点;学校限速区 |
| | | DEBUG("补全特殊区域 size = %d", map.specialAreas.size()); |
| | | // DEBUG("补全特殊区域 size = %d", map.specialAreas.size()); |
| | | for (int i = 0; i < map.specialAreas.size(); i++) { |
| | | if (map.specialAreas[i].type == GRID_AREA) |
| | | continue; |
| | |
| | | } |
| | | |
| | | PointF vPoint = GetSELine(map.roads[road].leftEdge, map.specialAreas[i].area[0]); |
| | | DEBUG("计算垂点1 (%f, %f)", vPoint.X, vPoint.Y); |
| | | // DEBUG("计算垂点1 (%f, %f)", vPoint.X, vPoint.Y); |
| | | |
| | | map.specialAreas[i].leftPoints.push_back(vPoint); |
| | | |
| | | vPoint = GetSELine(map.roads[road].leftEdge, map.specialAreas[i].area[0]); |
| | | DEBUG("计算垂点2 (%f, %f)", vPoint.X, vPoint.Y); |
| | | vPoint = GetSELine(map.roads[road].leftEdge, map.specialAreas[i].area[1]); |
| | | // DEBUG("计算垂点2 (%f, %f)", vPoint.X, vPoint.Y); |
| | | map.specialAreas[i].leftPoints.push_back(vPoint); |
| | | } |
| | | |
| | | if (map.specialAreas[i].type == ZEBRA_CROSSING || map.specialAreas[i].type == BUS_STATION_AREA) { |
| | | DEBUG("斑马线"); |
| | | // DEBUG("斑马线"); |
| | | Line startLine; |
| | | |
| | | MakeLine(&startLine, &map.specialAreas[i].area[0], &map.specialAreas[i].leftPoints[0]); |
| | |
| | | } |
| | | } else if (map.specialAreas[i].type == SCHOOL_AREA) { |
| | | Polygon school; |
| | | DEBUG("学校"); |
| | | // DEBUG("学校"); |
| | | school.num = 4; |
| | | school.point = (PointF *) malloc(school.num * sizeof(PointF)); |
| | | |
| | |
| | | free(school.point); |
| | | } |
| | | } |
| | | DEBUG("补全特殊区域 over"); |
| | | // DEBUG("补全特殊区域 over"); |
| | | } |
| | | |
| | | #if 0 |