docs: function recordRoute(call, callback) {
    var point_count = 0;
    var feature_count = 0;
    var distance = 0;
    var previous = null;
    // Start a timer
    var start_time = process.hrtime();
    call.on('data', function(point) {
      point_count += 1;
      if (checkFeature(point).name !== '') {
        feature_count += 1;
      }
      /* For each point after the first, add the incremental distance from the
       * previous point to the total distance value */
      if (previous != null) {
        distance += getDistance(previous, point);
      }
      previous = point;
    });
    call.on('end', function() {
      var summary = new messages.RouteSummary();
      summary.setPointCount(point_count);
      summary.setFeatureCount(feature_count);
      // Cast the distance to an integer
      summary.setDistance(distance|0);
      // End the timer
      summary.setElapsedTime(process.hrtime(start_time)[0]);
      callback(null, summary);
    });
  }