public int estimaTempo(double lat,double lon){
		Coord coord = new Coord(lat,lon); 
		PositionMetric posmetr = rotaCrt.calcDistPercorrida(coord);
		
		if(posmetr.minDistAteRota > DISTUSER)//Retorna  caso a distancia de referencia esta distante mais de 100 metros da rota
			return -2;
	
		float posUsuario = (float)posmetr.distPercorrida;
		
		int tempoestimado = -4;//Nao encontrado onibus no Sentido
		synchronized(Activebuses){
			
			if(Activebuses.size()==0) //retorna se lista de Onibus no sentido estiver vazia
				return -3;
			
			Enumeration keys = Activebuses.keys();
			
			long  agora = getCurrentSeconds();
			
			
			
			while(keys.hasMoreElements()){
				
				BusInfo businfo = Activebuses.get(keys.nextElement());
				
				if(businfo.notReady())//Se amostra nao for a primeira, nao deve ser usada
					continue;
				
				if(businfo.measureDeltaDist(posUsuario)<=0.0)//Se distancia ao usuario for negativa, N~oa serve pois esta a frente
					continue;
				
				long tempocheg = businfo.getTimeStamp() + (long)estim.tempoEstimado(businfo.getB(), posUsuario);
				
				if(tempocheg <= agora)//Onibus ja passou
					continue;
				
			
				if((tempocheg - agora) < tempoestimado || tempoestimado <0)
					tempoestimado = (int) (tempocheg - agora);
				
			}
			
		}
		
		
		return tempoestimado;
	}