Exemplo n.º 1
0
  public void onLocationChanged(Location location) {
    Log.i("", "onLocationChanged: " + location);

    if (atStop()
        && lastLocation != null
        && distanceFromLocation(currentStop.location, lastLocation) > MIN_DISTANCE * 2) {
      captureActivity.triggerTransitStopDepature();
    }

    if (currentCapture != null && location.getAccuracy() < MIN_ACCURACY * 2) {

      RoutePoint rp = new RoutePoint();
      rp.location = location;
      rp.time = SystemClock.elapsedRealtime();

      currentCapture.points.add(rp);

      if (lastLocation != null) {

        currentCapture.distance += distanceFromLocation(lastLocation, location);

        if (captureActivity != null) captureActivity.updateDistance();
      }

      lastLocation = location;

      if (captureActivity != null) captureActivity.updateGpsStatus();
    }
  }
Exemplo n.º 2
0
 private void parseGPXFile(GPXFile gpx) {
   this.gpx = gpx;
   Route rt = getRoute();
   currentPoints.clear();
   if (rt != null) {
     TargetPointsHelper targetPointsHelper = app.getTargetPointsHelper();
     String locName = targetPointsHelper.getPointNavigateDescription();
     for (int i = 0; i < rt.points.size(); i++) {
       WptPt wptPt = rt.points.get(i);
       RoutePoint rtp = new RoutePoint();
       rtp.gpxOrder = i;
       rtp.wpt = wptPt;
       String time = wptPt.getExtensionsToRead().get(VISITED_KEY);
       try {
         rtp.visitedTime = Long.parseLong(time);
       } catch (NumberFormatException e) {
       }
       rtp.isNextNavigate =
           rtp.visitedTime == 0 && locName != null && locName.equals(wptPt.name);
       if (rtp.isNextNavigate) {
         locName = null;
       }
       currentPoints.add(rtp);
     }
     sortPoints();
   }
 }
Exemplo n.º 3
0
 public int[] routeToArray() {
   int[] arr = new int[route.size() * 3];
   int index = 0;
   for (RoutePoint routePoint : route) {
     routePoint.writeAtLocation(arr, index);
     index += 3;
   }
   return arr;
 }
Exemplo n.º 4
0
 public int getVisitedCount() {
   int k = 0;
   for (RoutePoint rp : currentPoints) {
     if (rp.isVisited()) {
       k++;
     }
   }
   return k;
 }
Exemplo n.º 5
0
 public void navigateToPoint(RoutePoint rp) {
   if (!currentPoints.isEmpty()) {
     if (currentPoints.get(0).isNextNavigate()) {
       currentPoints.get(0).isNextNavigate = false;
     }
   }
   rp.isNextNavigate = true;
   sortPoints();
   app.getTargetPointsHelper().navigateToPoint(rp.getPoint(), true, -1, rp.getName());
 }
Exemplo n.º 6
0
 public void markPoint(RoutePoint point, boolean visited) {
   if (point.isNextNavigate() && visited) {
     naviateToNextPoint();
     return;
   }
   if (visited) {
     point.setVisitedTime(System.currentTimeMillis());
   } else {
     point.setVisitedTime(0);
   }
   sortPoints();
 }
Exemplo n.º 7
0
 public void updateCurrentTargetPoint() {
   TargetPointsHelper targetPointsHelper = app.getTargetPointsHelper();
   String locName = targetPointsHelper.getPointNavigateDescription();
   for (int i = 0; i < currentPoints.size(); i++) {
     RoutePoint rtp = currentPoints.get(i);
     rtp.isNextNavigate =
         rtp.visitedTime == 0 && locName != null && locName.equals(rtp.getName());
     if (rtp.isNextNavigate) {
       locName = null;
     }
   }
   sortPoints();
 }
Exemplo n.º 8
0
 public boolean naviateToNextPoint() {
   if (!currentPoints.isEmpty()) {
     RoutePoint rp = currentPoints.get(0);
     if (rp.isNextNavigate) {
       rp.setVisitedTime(System.currentTimeMillis());
       sortPoints();
     }
     RoutePoint first = currentPoints.get(0);
     if (!first.isVisited()) {
       app.getTargetPointsHelper().navigateToPoint(first.getPoint(), true, -1, first.getName());
       first.isNextNavigate = true;
       return true;
     } else {
       app.getTargetPointsHelper().clearPointToNavigate(true);
     }
   }
   return false;
 }
Exemplo n.º 9
0
 public String getDistance(RoutePoint rp) {
   double d = MapUtils.getDistance(rp.getPoint(), getPoint());
   String distance = OsmAndFormatter.getFormattedDistance((float) d, app);
   return distance;
 }